我想通过列获取最大平均数据组。我有一个这样构建的数据库:
id | late | from
---|------|--------
1 | 13 |a
2 | 3 |c
3 | 2 |c
4 | 27 |a
5 | 7 |b
6 | 9 |b
有了这个,我想找到具有最高平均“迟到”的“来自”。这里必须返回“a”:
AVG(a) = ((13 + 27) / 2) = 20
AVG(b) = ((7 + 9) / 2) = 8
AVG(c) = ((3 + 2) / 2) = 2.5
我尝试这样的事情:
SELECT id FROM Record HAVING MAX(AVG(late)) GROUP BY from
但它不起作用......
感谢您的巡回帮助!
答案 0 :(得分:2)
您可以按limit 1
降序使用order by avg
:
select `from`
from my_table
group by `from`
order by avg(late) desc
limit 1
但是您不应该使用名称为from
的列;并非没有逃避它,因为它是一个MySQL保留字。