SQL:从具有条件的不同表中按计数排序

时间:2012-02-17 22:35:01

标签: mysql sql mysql-error-1111

我想显示结果:

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

如果

附加的项目数量大于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)

1 个答案:

答案 0 :(得分: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)