从具有不同名称的表中获取值的AVG()

0x6773

我有一张桌子:

CREATE TABLE data
(
    value integer,
    name varchar(100)
)

在我的表格中,可能存在重复的值,name而值的不同value现在,我想DISTINCT name,有avg() value从表data

我能够得到DISTINCT的价值name,但无法得到avg()的有value秒。

现在通过以下查询,我得到avg()了所有数据:

select floor(avg(value)) from data

我知道这是不正确的,但是我是SQL的新手。我想要这个select floor(avg(value))作为的distinctname

数据 :

insert into data values(10, 'mnciitbhu')
insert into data values(20, 'mnciitbhu')
insert into data values(40, 'mafiya69')
insert into data values(20, 'mafiya69')
insert into data values(0, 'mafiya69')

输出 :

mnciitbhu 15
mafiya69 20
帕拉

添加此信息是因为其他答案虽然准确,但没有详细说明。

您要在此处使用SQLgroupingaggregation功能。

grouping您的结果将按特定字段划分,将结果集分为多个独立的部分,您可以使用这些aggregate函数进行操作,以获取每组的平均值,总和,计数等。

有关聚合函数的完整列表以及其他有关的其他信息group by,您可以阅读12.16.1 GROUP BY(聚合)函数

在您的实例中,由于您需要每个名称的平均值,因此您需要group by name这将给出以下查询:

select name, avg(value)
  from `data`
  group by name;       -- this is the important line

此查询将为value表中的每组名称计算的平均值,每组返回一行。

使用时group by一个非常重要的考虑因素是:select中包含的所有字段必须包含在group by子句中,或用于聚合函数中。如果您引用的字段不在此范围之内,则可能会导致不希望的不确定结果。

从手册12.16.3 MySQL BY GROUP BY

MySQL扩展了GROUP BY的使用,以便选择列表可以引用未在GROUP BY子句中命名的非聚合列。这意味着前面的查询在MySQL中是合法的。您可以使用此功能来避免不必要的列排序和分组,从而获得更好的性能。但是,这主要在每个组的每个未聚合列中未在GROUP BY中命名的所有值都相同时才有用。服务器可以从每个组中自由选择任何值,因此,除非它们相同,否则选择的值是不确定的。

该段的重要性不可夸大。容易误解它是如何工作的,很容易得出似乎能得到所需结果的查询,但有时会给出不正确/不需要的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从不同的Mysql表中获取具有相同名称的列

来自分类Dev

从多个表中获取具有相同名称的列

来自分类Dev

是否可以从具有相同名称的查询字符串中获取值?

来自分类Dev

如何从具有相同名称的多个类的HTML中获取值?

来自分类Dev

获取包含具有不同名称的输入的表单的数据

来自分类Dev

html抓取,获取具有相同名称的不同值

来自分类Dev

从具有相同名称的库中包含具有相同名称的不同对象。

来自分类Dev

如何在表中识别具有不同名称的相同列?

来自分类Dev

jooq getValue(String fieldName)不同表中具有相同名称的列

来自分类Dev

导出到excel中具有不同名称的两个工作表

来自分类Dev

当不同表中的两列具有相同名称时,如何使用SqlDataReader 读取数据?

来自分类Dev

如何从具有相同名称的多个元素中获取单击元素,数组的不同索引索引

来自分类Dev

从文档目录中获取包含相同名称但具有不同扩展名的文件列表。

来自分类Dev

如何从多个具有相同名称的输入中获取值,其中使用jQuery动态创建输入字段?

来自分类Dev

不同后备豆中具有相同名称的日期

来自分类Dev

PHP中具有相同名称的不同元素

来自分类Dev

C ++中具有相同名称但成员不同的struct

来自分类Dev

在tkinter中创建多个具有不同名称的按钮

来自分类Dev

在Python中删除具有不同名称的文件

来自分类Dev

从具有相同列的不同表中获取值到数组中

来自分类Dev

如何在联接Laravel上从具有不同ID的同一张表中检索不同名称

来自分类Dev

SQL Server中多个具有相同名称的表

来自分类Dev

具有相同名称的不同应用?

来自分类Dev

合并具有不同名称,类型和顺序的相似列时,如何在Power Query中追加表?

来自分类Dev

如何从两个不同的JS文件中获取具有相同名称的变量的每个值?

来自分类Dev

如何在具有相同名称但不同文件的javascript链接的页面中获取selenium的xpath?

来自分类Dev

如何在联接表结果中从具有相同名称的两个值中获取单个值?

来自分类Dev

具有不同名称和不同用途的相同表结构-SQL

来自分类Dev

Ruby 从具有相同元素的 HTML 表中获取值

Related 相关文章

  1. 1

    从不同的Mysql表中获取具有相同名称的列

  2. 2

    从多个表中获取具有相同名称的列

  3. 3

    是否可以从具有相同名称的查询字符串中获取值?

  4. 4

    如何从具有相同名称的多个类的HTML中获取值?

  5. 5

    获取包含具有不同名称的输入的表单的数据

  6. 6

    html抓取,获取具有相同名称的不同值

  7. 7

    从具有相同名称的库中包含具有相同名称的不同对象。

  8. 8

    如何在表中识别具有不同名称的相同列?

  9. 9

    jooq getValue(String fieldName)不同表中具有相同名称的列

  10. 10

    导出到excel中具有不同名称的两个工作表

  11. 11

    当不同表中的两列具有相同名称时,如何使用SqlDataReader 读取数据?

  12. 12

    如何从具有相同名称的多个元素中获取单击元素,数组的不同索引索引

  13. 13

    从文档目录中获取包含相同名称但具有不同扩展名的文件列表。

  14. 14

    如何从多个具有相同名称的输入中获取值,其中使用jQuery动态创建输入字段?

  15. 15

    不同后备豆中具有相同名称的日期

  16. 16

    PHP中具有相同名称的不同元素

  17. 17

    C ++中具有相同名称但成员不同的struct

  18. 18

    在tkinter中创建多个具有不同名称的按钮

  19. 19

    在Python中删除具有不同名称的文件

  20. 20

    从具有相同列的不同表中获取值到数组中

  21. 21

    如何在联接Laravel上从具有不同ID的同一张表中检索不同名称

  22. 22

    SQL Server中多个具有相同名称的表

  23. 23

    具有相同名称的不同应用?

  24. 24

    合并具有不同名称,类型和顺序的相似列时,如何在Power Query中追加表?

  25. 25

    如何从两个不同的JS文件中获取具有相同名称的变量的每个值?

  26. 26

    如何在具有相同名称但不同文件的javascript链接的页面中获取selenium的xpath?

  27. 27

    如何在联接表结果中从具有相同名称的两个值中获取单个值?

  28. 28

    具有不同名称和不同用途的相同表结构-SQL

  29. 29

    Ruby 从具有相同元素的 HTML 表中获取值

热门标签

归档