2012-02-17 10 views
2
私は結果を表示したい

と異なるテーブルからのカウントによって順ように:レコード番号は、それSQL:条件

IF

の数にアタッチされている項目の数が発注され

添付のアイテムこれは、古いものを投げる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

をあなたが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) 
+0

ありがとうございます! ORDER句とHAVING句の順序が間違っていました。 – Bubnoff