gpt4 book ai didi

MySQL如何通过数学表达式得到 'group by'

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:18 24 4
gpt4 key购买 nike

问题来了。让我们假设我有这样的表

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 )

此处组子句引发错误。任何人都可以帮我吗?谢谢

最佳答案

首先,您的排序有些错误: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

关于MySQL如何通过数学表达式得到 'group by',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com