2016-10-20 93 views
0

我有一個返回一個表,看起來像這樣的查詢:MySQL的分組和總結

+------+----------+-------+------+----+ 
| pID | name  | month | q | s | 
+------+----------+-------+------+----+ 
| 1468 | bob  |  2 | 1 | 14 | 
| 1469 | bob  |  2 | 1 | 2 | 
| 1470 | bob  |  2 | 1 | 9 | 
| 1468 | bob  |  3 | 1 | 7 | 
| 1469 | bob  |  3 | 1 | 8 | 
| 1470 | bob  |  3 | 1 | 11 | 
+------+----------+-------+------+----+ 

,我想輸出是

+----------+-------+------+-----+ 
| name  | month | q | sub | 
+----------+-------+------+-----+ 
| bob  |  2 | 1 | 25 | 
| bob  |  3 | 1 | 26 | 
+----------+-------+------+-----+ 

從本質上講,我想前兩我的輸出的列爲namemonthq,按namemonth分組(它們將在此分組中每行總是具有相同的數據),並且我希望最後一列爲的SUM僅分組name

謝謝。

+0

'only_full_group_by' ......你最好希望列2和3是你想要的或擲骰子。你的結果符合這兩個問題:[one](http://stackoverflow.com/a/39563792)和[two](http://stackoverflow.com/a/39551434)。你的col1和col4會很好。也許,中間兩個會隨意地到達,而不是以你想要的隨機方式。如從MRU高速緩存提供的獨特行 – Drew

回答

2

應該是這樣的:

SELECT name, month, q, SUM(sub) 
FROM table 
GROUP BY name, month, q 
+0

此解決方案似乎給了我想要的。我將不得不進一步確認。 – matthias