2012-02-17 41 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) 

這將引發老:

錯誤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 2012-02-18 01:18:11