我想GROUP BY表中的项目,它具有相关的货币值。这可以用百分比形式表示,但是列表中的项目通常太多(太多无用,例如在图表中)。因此,我想把那些对总数少于5%的项目放入“其他”组。有什么想法吗?由'other'分组,其中包含小贡献的组包含在'other'字段中 - MySQL
谢谢(使用MySQL> v5)
我想GROUP BY表中的项目,它具有相关的货币值。这可以用百分比形式表示,但是列表中的项目通常太多(太多无用,例如在图表中)。因此,我想把那些对总数少于5%的项目放入“其他”组。有什么想法吗?由'other'分组,其中包含小贡献的组包含在'other'字段中 - MySQL
谢谢(使用MySQL> v5)
看起来像一个UNION可以帮助,例如, (取决于你的表的组织方式,当然):
SELECT itemname, SUM(percent) AS pc FROM items
GROUP BY itemtype
HAVING SUM(percent) >= 0.05
UNION
SELECT 'Other', SUM(*) FROM
(SELECT SUM(percent) FROM items
GROUP BY itemtype
HAVING SUM(percent) < 0.05)
如果没有%的投篮,但只有(比如说)值字段(所以%需要动态计算为100乘以分数一个项目对总数的价值),您可以从另一个嵌套的SELECT中获得总计值,但在某些时候,可能需要切换到其他受访者提示的程序方法。
你问了一些想法。我可以为你编写SQL,但是我想知道(根据你的总体设计),在BL或UI中做一些更多的工作(例如用一个数组来完成同样的事情)可能并不容易。首先,SQL必然会比你想要的更复杂,效率更低。
创建一个临时表,并有两个插入语句,一个是您的主要东西,另一个是其他组,然后从临时表中选择全部。