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 に答える