Mysql 按6个月windows进行SQL聚合
有没有更好的方法使用SQL(mysql)在6个月的窗口内进行聚合?这似乎可以在正常情况下获取相关数据,但显然是有限的Mysql 按6个月windows进行SQL聚合,mysql,sql,datetime,sum,intervals,Mysql,Sql,Datetime,Sum,Intervals,有没有更好的方法使用SQL(mysql)在6个月的窗口内进行聚合?这似乎可以在正常情况下获取相关数据,但显然是有限的 SELECT SUM(...) some_aggg, (CASE WHEN SOME_DATE > DATE_SUB(now(), INTERVAL 6 MONTH) THEN 3 WHEN SOME_DATE > DATE_SUB(now(), INTERVAL 12 MONTH) THEN 2 WHEN SOME_
SELECT SUM(...) some_aggg,
(CASE
WHEN SOME_DATE > DATE_SUB(now(), INTERVAL 6 MONTH) THEN 3
WHEN SOME_DATE > DATE_SUB(now(), INTERVAL 12 MONTH) THEN 2
WHEN SOME_DATE > DATE_SUB(now(), INTERVAL 18 MONTH) THEN 1
ELSE 0
END) RECENCY
WHERE ...
GROUP BY RECENCY
ORDER BY RECENCY DESC
来点算术怎么样
select sum(...) some_aggg,
floor(timestampdiff(month, some_date, now()) / 6) recency
where ...
group by recency
order by recency
recenty
为您提供一个整数值,该整数值从0
(日期小于6个月)开始,每6个月递增1:1
表示6个月到1年之间,依此类推。这是mysql还是mariadb?mariadb最近获得了对时态表的支持:两者都支持,通常针对mysql 5.7,但接近与8.0+timestampdiff:)的兼容性(编辑建议)在日期字段中突出数据错误的好处