我需要查詢顯示某段時間的所有日期(例如從2017年1月1日 - 2017年12月12日),然後爲每個日期那天我需要顯示插入它的客戶在當天插入的行數。顯示當天的所有日期範圍並顯示當天的行數
因此,例如,我有這個表:
+------------+------------+-----------+
| customerId | Date | Message |
+------------+------------+-----------+
| 1 | 01/01/2017 | Message 1 |
| 1 | 01/01/2017 | Message 2 |
| 1 | 01/01/2017 | Message 3 |
| 2 | 01/01/2017 | Message 1 |
| 2 | 01/01/2017 | Message 2 |
| 1 | 02/01/2017 | Message 3 |
| 1 | 02/01/2017 | Message 4 |
| 2 | 03/01/2017 | Message 3 |
+------------+------------+-----------+
結果應該是這樣的:
+------------+------------+----------+
| Date | customerId | messages |
+------------+------------+----------+
| 01/01/2017 | 1 | 3 |
| 01/01/2017 | 2 | 2 |
| 02/01/2017 | 1 | 2 |
| 02/01/2017 | 2 | 0 |
| 03/01/2017 | 1 | 0 |
| 03/01/2017 | 2 | 1 |
+------------+------------+----------+
我已經有這個疑問:
SELECT TRUNC (SYSDATE + ROWNUM, 'DD') as dt
FROM DUAL CONNECT BY ROWNUM < 12
,給了我一個表中x日期的日期範圍(在本例中爲12)。我已經試過用這個DUAL表(LEFT JOIN和JOIN)加入我的表,但它並沒有給我我需要的結果。
編輯:我剛發現我可以用CROSS JOIN
顯示所有日期。
我刪除了MySQL標籤的語法看起來像甲骨文。 –
哦,是的,對不起,這是建議。 –
我剛剛發現我可能需要'CROSS JOIN' –