MySQL如何';分组依据';数学表达式
问题是。假设我有一张这样的桌子MySQL如何';分组依据';数学表达式,mysql,group-by,Mysql,Group By,问题是。假设我有一张这样的桌子 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(C
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子句引发错误。有人能帮我吗?
谢谢首先,您的订购有些错误:
orderby
子句必须位于groupby
子句之后
其次,COUNT()
中的计算是不必要的,只需将其删除即可
最后,我猜上限
操作也应该是结果集的一部分,因此您可以在分组中重用它,如下所示:
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
首先,您的订购有点错误:ORDER BY
子句必须位于GROUP BY
子句之后
其次,COUNT()
中的计算是不必要的,只需将其删除即可
最后,我猜上限
操作也应该是结果集的一部分,因此您可以在分组中重用它,如下所示:
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