gpt4 book ai didi

sqlite - SQLITE3 GROUP BY“周年纪念日”

转载 作者:行者123 更新时间:2023-12-03 18:41:41 26 4
gpt4 key购买 nike

我将数据以这种格式存储在SQLITE3数据库中:

id | ts | data ...
475158|2019-11-12 07:50:00 | ...


所以我习惯按日,月,年分组,例如:

SELECT STRFTIME("%Y-%m", ts), SUM(<data in my table>)
FROM ( <my table> )
GROUP BY STRFTIME("%Y-%m", ts)
ORDER BY ts


现在,我想做同样的事情,但是要基于周年纪念日。

例如,如果周年纪念日是2010-11-17,我想按年份分组,但在'YYYY'-11-17和'YYYY + 1'-11-16之间

例:

2017 |sum of data between  2016-11-17 & 2017-11-16
2018 |sum of data between 2017-11-17 & 2018-11-16
2019 |sum of data between 2018-11-17 & 2019-11-16


有可能容易吗?

最佳答案

您可以通过以下表达式获得年份:

strftime('%Y', ts) + (substr(ts, 6, 5) >= '11-17')


这样做:

select 
strftime('%Y', ts) + (substr(ts, 6, 5) >= '11-17') year,
sum(data) total
from tablename
group by year


请参见 demo

关于sqlite - SQLITE3 GROUP BY“周年纪念日”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58818129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com