我需要2個不同的SUM
,但沒有按同一組進行分組。Mysql 2 SUM和不同的組
這個問題有點奇怪,讓我們舉個例子吧。我有一個查詢(比方說,一個經典的選擇),輸出這組數據:爲簡要說明
+----+------+------+----+----------+
| id | t_id | o_id | lt | quantity |
+----+------+------+----+----------+
| 1 | 1 | 1 | 30 | 50 |
| 2 | 2 | 10 | 90 | 90 |
| 3 | 4 | 10 | 10 | 20 |
| 4 | 4 | 10 | 5 | 20 |
| 5 | 4 | 9 | 20 | 20 |
+----+------+------+----+----------+
現在,t_id
是fuel id
,o_id
是order id
,lt
是升運量, quantity
是給定燃料的訂購數量(以升計)。
所以,如果我解釋第1行:order #1
是50升fuel #1
,目前只有30升已經發貨。
第2,3和4行:order #10
需要90升fuel #2
和20升fuel #4
。 90升的fuel #2
已經發貨,10 + 5升的燃料#4
已經發貨。換句話說:order #10
需要90 + 20升燃料(任何燃料),並且90 + 10 + 5升已經發貨。現在
,棘手的問題是,我想SELECT SUM(lt), SUM(quantity)
,lt
通過o_id
但quantity
通過t_id, o_id
分組分組。預期的輸出是:
+----+------+------+---------+---------------+
| id | t_id | o_id | SUM(lt) | SUM(quantity) |
+----+------+------+---------+---------------+
| 1 | 1 | 1 | 30 | 50 |
| 2 | 2 | 10 | 105 | 110 | <-- 90+10+5 | 90+20
| 5 | 4 | 9 | 20 | 20 |
+----+------+------+---------+---------------+
有關如何實現這一點的任何想法?我希望我的問題得到很好的解釋。
感謝您的幫助。 PS:實際上,整個問題可以概括爲:是否有可能將2個聚合體按不同的值分組?
PS2:這裏是一個SqlFiddle給幾乎相同的一組(如第一)
- 編輯 -
可恥的是我...我沒有問題的正確方式,我也沒有清楚地知道它。但是感謝@mendosi和他的建議(這讓我意識到我的錯誤)。其實,我只需要SUM
訂購的燃料數量,不管是哪種燃料,SUM
不管是哪種燃料都可以運送燃料的數量,就這些。
所以這裏是最後的sqlfiddle,最後的請求是我使用的最終請求。
你確定你的數據我沒錯。您的訂單10需要90 + 20 + 20升左右的樣本數據 – e4c5
而不是看到您當前的輸出,最好向我們顯示原始表格和查詢。 –
該設置是正確的,只是不詳細。這個集合是從一個複雜的查詢中提取的,'lt'來自'shipments'表格,這就是爲什麼可以有一個或多個數量來獲得數量(這是給定訂單的給定燃料的數量) – Max13