我想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必然會比你想要的更復雜,效率更低。
創建一個臨時表,並有兩個插入語句,一個是您的主要東西,另一個是其他組,然後從臨時表中選擇全部。