2013-08-19 29 views
0

這是問題。讓我們假設我有臺這樣MySQL如何通過數學表達式'分組'

id | MF_SONUC 
----------  
1 | 5 
2 | 8 
3 | 15 
4 | 12 
5 | 18 
6 | 3 
7 | 40 

我想達到什麼是組由一些值除以值(讓我們8)。 所以結果應該是這樣的

count| step 
----------- 
3 | 1 
2 | 2 
1 | 3 
1 | 5 

到目前爲止,我得到這個

SELECT COUNT(CEILING(MF_SONUC /8)) AS counter , MF_SONUC 
FROM `mytable` 
ORDER BY CONVERT(REPLACE(MF_SONUC, ',', '') , DECIMAL(10, 2)) ASC 
GROUP BY CEILING(MF_SONUC /8) 

這裏的group子句是提高錯誤。任何人都可以幫助我嗎? 謝謝

回答

4

首先您的排序有些不對:ORDER BY子句必須在GROUP BY子句之後。

其次,COUNT()裏面的計算是不必要的,只需放下即可。

而且最後我想CEILING操作也應是結果集的一部分,這樣你就可以在GROUP BY重用它像圖所示:

SELECT COUNT(*) AS counter , CEILING(MF_SONUC /8) AS `step` 
FROM `mytable` 
GROUP BY step 
ORDER BY CONVERT(REPLACE(MF_SONUC, ',', '') , DECIMAL(10, 2)) ASC 

Example Fiddle

+0

感謝,它的工作完美 –