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

时间:2014-10-15 07:53:06

标签: mysql sql sqlcommand

在我的表格中,我有一些像这样的colms,(在另一个cols旁边)

col1 | col2
s1   |  5
s1   |  5
s2   |  3
s2   |  3
s2   |  3
s3   |  5
s3   |  5
s4   |  7

我希望 ALL col2的平均值超过不同的col1。 (5 + 3 + 5 + 7)/ 4 = 5

5 个答案:

答案 0 :(得分:2)

您将需要一个子查询。这是一种方式:

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

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

平均值是一组值之和除以这些值的数量。在这里,您想要除以不同值的计数,所以:

SELECT SUM(col2)/COUNT (DISTINCT col1)
FROM   my_table

答案 3 :(得分:-1)

你可以说

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

答案 4 :(得分:-1)

尝试

SELECT AVG(coll2) as Average From myTable Group by Col1,Col2