0

これが質問です。このようなテーブルがあると仮定しましょう

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 )

ここでグループ句がエラーを引き起こしています。誰でも私を助けることができますか?ありがとう

4

1 に答える 1

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

フィドルの例

于 2013-08-19T11:51:59.107 に答える