我的查询在这里
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.id
只SUM(t.num) >= 2
,但结果在SQLFiddle中完全错误:http://sqlfiddle.com/#!9/754e15/2/0
我想要做的就是选择记录WHERE num >= 2
和ORDER BY num desc
,我甚至不需要选择SUM(t.num)
,因此尝试删除它并替换每个{{1} } num
但SUM(t.num)
,
我的目标是使用Invalid use of group function
代替WHERE
,之前使用的是HAVING
,但我想使用HAVING
,因为它更快。
答案 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
子句