我试着每个月都得到数据。
我是个新手 MySQL
.
我只是在网上搜索和学习。
所以,我的问题可能不合适。
如果不合适,请修正我的问题。
这是我的问题
SELECT
SUM( cr_dt > EXTRACT( YEAR_MONTH FROM CURDATE() )
AND
cr_dt < EXTRACT( YEAR_MONTH FROM CURDATE() + INTERVAL 1 MONTH )
) as thisMonth,
SUM( cr_dt > EXTRACT( YEAR_MONTH FROM CURDATE() - INTERVAL 1 MONTH
AND
cr_dt < EXTRACT( YAER_MONTH FROM CURDATE()
) as last1Month
FROM MYTABLE
我刚刚找到了 EXTRACT()
以及 INTERVAL
,但我不知道它是否合适。
如果你有更好的解决方法,请分享。
我所期望的
| thisMonth | last1Month |
+-----------+------------+
| 123 | 1294 |
我现在看到的
| thisMonth | last1Month |
+-----------+------------+
| 0 | 0 |
样本数据
| idx | cr_dt |
+-----+---------------------+
| 1 | 2018-02-01 17:00:00 |
| 2 | 2018-02-19 16:00:00 |
| 3 | 2018-02-28 15:00:00 |
| 4 | 2018-03-04 14:00:00 |
| 5 | 2018-04-01 13:00:00 |
| 6 | 2018-04-09 12:00:00 |
| 7 | 2018-04-12 11:00:00 |
| 8 | 2018-04-17 10:00:00 |
1条答案
按热度按时间bxpogfeg1#
您需要在这里使用条件聚合,如下所示:
更典型的是,您可能会看到使用
GROUP BY
子句计算单个组的聚合。但是,在您的示例中,似乎您希望在整个表上进行聚合。