的百分比丟失列我有模式的MySQL表如下:單個查詢,以填補在通過計算組總
行group id amount fraction
1 1 3
1 2 5
2 3 2
2 3 1
每個屬於一個組。每行還存儲一個稱爲amount
的特定值。我想找到佔集團總amount
每一行都有的部分,因此該表將是這樣的:
AFTER
group id amount fraction
1 1 3 .375
1 2 5 .625
2 3 2 66.67
2 3 1 33.33
要獲得第1列的值,我在第1組總結了所有的amount
列。那將是3 + 5,即8。然後我將第1行中的amount
除以組合和,得出.375。我爲他們做了這些。通過各組
SELECT SUM(amount) GROUP BY group
然後循環,選擇排在該組中,計算分數,並更新行:
我可以像這樣寫查詢做到這一點。不幸的是,這意味着在初始查詢之後,我將處理2個嵌套for循環,以及數百萬和數百萬個查詢,這將在數據集的大小的情況下花費很長時間。
我有一種微妙的感覺,有一種方法可以通過一個mysql查詢更高效地執行此操作。如果任何人有任何想法如何使用單個查詢來做到這一點,那是我的問題。
組是一個一個可憐的名字表/列標識符。我想知道你能弄清楚爲什麼? – Strawberry
是的......我只是用它來簡化示例,我實際使用的名稱是不同的。我想這確實會讓答案更難以閱讀! – user3413723