Mysql sql从表的不同列中选择平均值

Mysql sql从表的不同列中选择平均值,mysql,sql,sqlcommand,Mysql,Sql,Sqlcommand,在我的桌子上,我有一些像这样的可乐,(旁边是另一匹) 我想求不同col1上的ALLcol2的平均值。 (5+3+5+7)/4=5平均值是一组值的总和除以这些值的个数。在这里,您希望除以不同值的计数,因此: SELECT SUM(col2)/COUNT (DISTINCT col1) FROM my_table 你可以说 SELECT col1, AVG( col2 ) FROM my_table GROUP BY col1 试一试 试试这个: SELECT AVG(T.col2) FRO

在我的桌子上,我有一些像这样的可乐,(旁边是另一匹)

我想求不同col1上的ALLcol2的平均值。
(5+3+5+7)/4=5

平均值是一组值的总和除以这些值的个数。在这里,您希望除以不同值的计数,因此:

SELECT SUM(col2)/COUNT (DISTINCT col1)
FROM   my_table
你可以说

SELECT col1, AVG( col2 ) FROM my_table GROUP BY col1
试一试

试试这个:

SELECT AVG(T.col2)
FROM 
    (SELECT DISTINCT col1, col2
    FROM yourtable) as T

您将需要一个子查询。这里有一个方法:

select avg(col2)
from (select distinct col1, col2
      from my_table
     ) t

亲爱的,您总结了col2的所有值,而不是一个单独的col1。这是OP的文本建议的,尽管不是他的示例。让我们请OP澄清一下,你能分享一下你期望得到的这些数据的输出吗?您的计算和文本似乎相互矛盾。这是错误的,它分别为每个col1不同元素生成平均值!
SELECT AVG(T.col2)
FROM 
    (SELECT DISTINCT col1, col2
    FROM yourtable) as T
select avg(col2)
from (select distinct col1, col2
      from my_table
     ) t