下面是我的mysql表:
mysql> DESCRIBE mytable;
+---------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| url_timestamp | timestamp | NO | | NULL | |
| cr_num | varchar(50) | NO | | NULL | |
| status | varchar(255) | NO | | NULL | |
| rollback_date | timestamp | YES | | NULL | |
| rollback_user | varchar(255) | YES | | NULL | |
+---------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
我希望得到过去 12 个月的主键 cr_num 的按月计数。
mysql> SELECT MONTHNAME(url_timestamp) , COUNT(url_timestamp) FROM mytable WHERE status='PRODUCTION' and url_timestamp >= NOW() - INTERVAL 1 YEAR GROUP BY MONTHNAME(url_timestamp);
+--------------------------+----------------------+
| MONTHNAME(url_timestamp) | COUNT(url_timestamp) |
+--------------------------+----------------------+
| November | 43 |
| December | 69 |
| January | 220 |
| October | 225 |
| February | 209 |
| March | 123 |
| April | 93 |
| May | 113 |
| June | 217 |
| July | 129 |
| August | 185 |
| September | 415 |
+--------------------------+----------------------+
12 rows in set (0.01 sec)
我得到的输出存在三个问题。
我希望输出从首先列出的当前月份开始排序,即 2020 年 10 月一直到 2019 年 11 月。
11 月和 12 月来自上一年,即 2019 年;所以我想在每个月旁边显示年份。
我只想获取 2020 年的数据,因此不应显示 11 月和 12 月的记录。
我不是来自数据库背景,所以我没有深入研究我可以尝试的内容。