选择SUM()的值

时间:2018-03-11 22:37:52

标签: mysql sql

我的查询在这里

SELECT o.id, SUM(t.num) AS num
FROM table_1 o
LEFT JOIN table_2 t ON t.id = o.id
WHERE num >= 2
GROUP BY o.id
ORDER BY num DESC

我应该只SELECT o.idSUM(t.num) >= 2,但结果在SQLFiddle中完全错误:http://sqlfiddle.com/#!9/754e15/2/0

我想要做的就是选择记录WHERE num >= 2ORDER BY num desc,我甚至不需要选择SUM(t.num),因此尝试删除它并替换每个{{1} } numSUM(t.num)

我的目标是使用Invalid use of group function代替WHERE,之前使用的是HAVING,但我想使用HAVING,因为它更快。

1 个答案:

答案 0 :(得分:1)

您可以使用以下子查询:

SELECT * FROM 
(SELECT o.id, SUM(t.num) num FROM table_1 o
LEFT JOIN table_2 t
ON t.id = o.id
GROUP BY o.id) T 
WHERE num >= 2

在子查询之外使用WHERE子句