【问题标题】:SQL: order by count from different table with conditionSQL:按条件从不同表中按计数排序
【发布时间】: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)

【问题讨论】:

    标签: mysql sql mysql-error-1111


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多