获取每天的 id 计数并按日期分组
目前,有一个如下所示的查询:
SELECT send_id, count(id) FROM `table1`
WHERE date BETWEEN '2024-09-01%' AND '2024-09-30%'
GROUP BY send_id;
这将返回如下所示的结果:
| send_id | count(id) |
-------------------------------
| 00123 | 32 |
| 00234 | 12 |
| 00567 | 100 |
| 00890 | 07 |
-------------------------------
想添加日期并获取每天每个send_id的计数。
写了这个查询:
SELECT DATE(date) as 'date', send_id, count(id) FROM `table1`
WHERE date BETWEEN '2024-09-01%' AND '2024-09-30%'
GROUP BY date, send_id;
使用 DATE(date) 是因为列 date 是日期时间。我不需要时间,只需要日期。
我得到的结果如下所示:
| date | send_id | count(id) |
---------------------------------------------
| 2024-09-01 | 00123 | 03 |
| 2024-09-01 | 00123 | 10 |
| 2024-09-01 | 00567 | 20 |
| 2024-09-01 | 00567 | 05 |
---------------------------------------------
想要的结果应该是这样的:
| date | send_id | count(id) |
---------------------------------------------
| 2024-09-01 | 00123 | 13 |
| 2024-09-01 | 00567 | 25 |
---------------------------------------------
因为send_id 在 2024 年 9 月 1 日的 ID 总数为 13,但它将其分成了 2 行。
id 是 auto_incremented 字段。
我认为这是因为日期时间,但不确定。
如何修复查询,使其获取每天每个send_id的 id 计数?