我看了一个similar question并阅读了关于平均函数的文档,但当我尝试:
CREATE TABLE tab(
id INT,
score INT
);
INSERT INTO tab VALUES
(1, 22),
(2, 45),
(3, 82),
(4, 87);
SELECT score,AVG(score)
FROM tab
GROUP BY score
HAVING score>AVG(score)
把AVG
放在score
之后,我得到
没有要显示的结果。
我怎样才能让它工作?
这是fiddle。
1条答案
按热度按时间lskq00tm1#
这里的问题是你是按“score"进行聚合的,这样做会得到每条记录的平均值,因此总是
AVG(score) = score
。为此,您需要使用相应的窗口函数(Demo):
或者,如果您不介意在最终输出(Demo)中不选择平均值: