我有一个表(表的链接:https://docs.google.com/spreadsheets/d/11p_elrtcxwe3nyaop-auo7w-et_zd6omn-v-zmdu8ka/edit?usp=sharing)我必须从中找出每年销售额超过平均销售额的推销员名单。
我在下面写了一个查询,但它不起作用。
SELECT t1.salesman, t1.AVG(sale), t1.year
SUM(CASE WHEN t1.AVG(sale)>t2.AVG(sale) THEN 1 ELSE 0 END)>0
FROM Sales_temp as t1
LEFT JOIN
(SELECT t2.year, t2.AVG(sale)
FROM Sales_temp as t2
Group by t2.year)
ON t1.year = t2.year
Group by t1.salesman
任何帮助都是值得赞赏的。
3条答案
按热度按时间nimxete21#
试试这个:
uhry853o2#
试试这个:
通过给子查询列指定别名,可以不用表的别名。这简化了一些事情。我改变了你的想法
LEFT JOIN
至INNER JOIN
,因为这会将输出限制为可以加入的记录,即。e。有sale>asale
.我还添加了
ORDER BY
子句来提高结果的可读性。kcwpcxri3#
为了子孙后代,如果您使用的是mysql版本8或更高版本,那么我们可以在这里使用分析函数: