SQL:按条件从不同表中按计数排序
Posted
技术标签:
【中文标题】SQL:按条件从不同表中按计数排序【英文标题】:SQL: order by count from different table with condition 【发布时间】:2012-03-09 08:01:34 【问题描述】:我想这样显示结果:
记录编号按附加到它的项目数排序
如果
附加的项目数大于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】:您使用 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)
【讨论】:
以上是关于SQL:按条件从不同表中按计数排序的主要内容,如果未能解决你的问题,请参考以下文章
在 Objection.js 中按急切结果计数排序记录并实现分页?