2

我想显示这样的结果:

记录编号按附加到它的项目数排序

如果

附加的项目数大于 100

SELECT r.number,
       r.title,
       COUNT(i.itemnumber)
FROM record r
LEFT JOIN items i ON (r.number = i.number)
WHERE r.title REGEXP 'SQL for idiots'
AND COUNT(i.itemnumber) > 100
GROUP BY r.number
ORDER BY COUNT(i.itemnumber)

这抛出了旧的:

ERROR 1111 (HY000): 组函数使用无效

我也尝试过没有运气的“HAVING”子句。

知道了!:

不得不用我的 ORDER 子句交换行:

HAVING COUNT(i.itemnumber) > 100
ORDER BY COUNT(i.itemnumber)
4

1 回答 1

4

您使用 HAVING 子句测试聚合函数的结果。

SELECT r.number,
       r.title,
       COUNT(i.itemnumber)
FROM record r
LEFT JOIN items i ON (r.number = i.number)
WHERE r.title REGEXP 'SQL for idiots'
GROUP BY r.number
HAVING COUNT(i.itemnumber) > 100
ORDER BY COUNT(i.itemnumber)
于 2012-02-17T22:36:32.820 回答