[英]SQL Aggregating by 6 month windows
有沒有更好的方法使用 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_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
recency
為您提供一個從0
開始的整數值(日期小於 6 個月),每 6 個月遞增 1: 1
表示介於 6 個月和 1 歲之間,依此類推。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.