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

Blu*_*irl 6 mysql sql sqlcommand

在我的桌子上,我有一些这样的柱子,(在另一个柱子旁边)

col1 | col2
s1   |  5
s1   |  5
s2   |  3
s2   |  3
s2   |  3
s3   |  5
s3   |  5
s4   |  7
Run Code Online (Sandbox Code Playgroud)

我想要所有col2 的平均值超过 Distinct col1。(5+3+5+7)/4=5

Joe*_*ras 6

尝试这个:

SELECT AVG(T.col2)
FROM 
    (SELECT DISTINCT col1, col2
    FROM yourtable) as T
Run Code Online (Sandbox Code Playgroud)


Gor*_*off 5

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

select avg(col2)
from (select distinct col1, col2
      from my_table
     ) t
Run Code Online (Sandbox Code Playgroud)