我想在我的表格中使用GROUP BY项目,该项目具有相关的货币价值。这个我可以按百分比计算,但是列表中的项目通常太多(太多而无用,例如在图表中)。因此,我想将那些对总数低于5%的贡献的项目放入“其他”组。有什么想法吗?
谢谢(使用MySQL> v5)
答案 0 :(得分:1)
看起来像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,但在某些时候,可能值得转换到其他受访者暗示的程序方法。
答案 1 :(得分:0)
你问了想法。我可以为你编写SQL,但我想(根据你的整体设计)你可能会发现在BL或UI中做一些工作更容易,例如使用数组来完成同样的事情。首先,SQL必然会比您想要的更复杂,效率更低。
答案 2 :(得分:0)
创建一个临时表并有两个插入语句,一个主要的东西和一个另一个组,然后只从临时表中选择所有。