我有一個名爲行程表,該表如下在MySQL行:使用組SQL此表入門需要使用GROUPBY
+-------+-----+----------+
| Name | Day | Distance |
+-------+-----+----------+
| Ravi | 1 | 10 |
| Ravi | 2 | 21 |
| Ravi | 3 | 23 |
| Hari | 1 | 12 |
| Hari | 2 | 32 |
| Kiran | 1 | 12 |
| Kiran | 2 | 32 |
| Kiran | 3 | 21 |
| Kiran | 4 | 43 |
+-------+-----+----------+
爲
我得到的結果如下
+-------+-----+----------+------------+
| Name | Day | Distance | total_dist |
+-------+-----+----------+------------+
| Ravi | 1 | 10 | 54 |
| Hari | 1 | 12 | 44 |
| Kiran | 1 | 12 | 108 |
+-------+-----+----------+------------+
這就是mysql默認提供的最上面一行沒有聚合的列。但我寧願讓該組中的所有彙總值或行與底行的行類似如下:
+-------+-----+----------+------------+
| Name | Day | Distance | total_dist |
+-------+-----+----------+------------+
| Ravi | 3 | 23 | 54 |
| Hari | 2 | 32 | 44 |
| Kiran | 4 | 43 | 108 |
+-------+-----+----------+------------+
或任何這樣:
+-------+-----+----------+------------+
| Name | Day | Distance | total_dist |
+-------+-----+----------+------------+
| Ravi | 1 | 10 | 54 |
| Ravi | 2 | 21 | 54 |
| Ravi | 3 | 23 | 54 |
| Hari | 1 | 12 | 44 |
| Hari | 2 | 32 | 44 |
| Kiran | 1 | 12 | 108 |
| Kiran | 2 | 32 | 108 |
| Kiran | 3 | 21 | 108 |
| Kiran | 4 | 43 | 108 |
+-------+-----+----------+------------+
我是新來使用的MySQL並與使用團體混淆,請指導我,如果任何上述兩個結果是可能得到的。
工作,兩者都是可能的 - 這實際上,你需要什麼? – sgeddes
我可以得到他們兩個,它會幫助我更好地瞭解組 –
*「這是mysql默認情況下爲頂級行添加未彙總的列。」 - - 不是這樣。你的查詢不是'SQL',它不應該運行。 'MySQL'是仁慈的,忽略錯誤(不應出現在'GROUP BY'中的列應該被聚合)並生成一個記錄集。但它從列中選擇一些隨機值。結果是不確定的。如果您導出表數據並將其導入到其他數據庫中,則由相同查詢生成的結果集可能會有所不同。請閱讀此處:http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html – axiac