比如我有2個表:SQL SUMED了數據與第
用戶
+----+
| id |
+----+
| 0 |
| 1 |
| 2 |
| 3 |
+----+
支付
+---------+--------+------+
| user_id | amount | case |
+---------+--------+------+
| 0 | 10 | 1 |
| 0 | 1 | 2 |
| 2 | 5 | 1 |
| 2 | 4 | 1 |
| 2 | 5 | 2 |
| 3 | 26 | 2 |
+---------+--------+------+
而我試圖讓輸出:
+---------+---------------------+---------------------+
| user_id | total_amount_case_1 | total_amount_case_2 |
+---------+---------------------+---------------------+
| 0 | 10 | 1 |
| 2 | 9 | 5 |
| 3 | 0 | 26 |
+---------+---------------------+---------------------+
用文字解釋我想選擇每個用戶至少有一次付款,並在分開的情況下彙總其付款金額。
我能得到的地方,我選擇每個用戶的總支付了點,但不依賴於什麼情況下,它是:
SELECT users.id AS user_id, SUM(payments.amount) AS total_amount FROM users LEFT JOIN users.id = payments.user_id GROUP BY user_id ORDER BY user_id;
這給了我這樣的輸出:
+---------+--------------+
| user_id | total_amount |
+---------+--------------+
| 0 | 11 |
| 1 | 0 |
| 2 | 14 |
| 3 | 26 |
+---------+--------------+