我想计算每个月不同日期的数量。
我的数据集如下所示:
TIMESTAMP
------------------
2017-10-25 14:39:51
2017-10-25 15:00:51
2017-11-10 02:39:42
2018-09-24 14:39:55
2018-09-25 13:25:01
2019-02-12 12:23:44
...
所以我的预期结果是:
year_month | count
2017-10 2
2018-09 2
2019-02 1
到目前为止,我尝试了以下代码,但返回的结果不正确:
WITH F AS(
SELECT concat(YEAR(TIMESTAMP), MONTH(TIMESTAMP)) AS year_month
FROM tbl
WHERE TYPE = 'Site'
AND TO_SITE = 'location'
)
SELECT count(year_month), year_month
FROM F
GROUP BY year_month
我不需要担心一天的时间。我只想计算每个月的不同天数。事先谢谢你的帮助。
3条答案
按热度按时间x33g5p2x1#
在sql server中,我推荐以下方法之一:
或:
我认为不需要子查询或CTE。
o2g1uqev2#
从您的代码中,我假设您使用的是sql server,那么您就可以这样做了
输出:
oknrviil3#
使用
date_trunc()
在postgresql中,它可以是:根据设置的详细信息,可以进行各种性能优化。