Sqlite,使用分组?对于具有日期范围的子查询
Posted
技术标签:
【中文标题】Sqlite,使用分组?对于具有日期范围的子查询【英文标题】:Sqlite, using grouping? for subqueries with date ranges 【发布时间】:2019-11-27 00:40:23 【问题描述】:我有一个按原样工作的 sqlite 查询,它用于获取日期范围之间的平均日期
SELECT AVG(activity) as activity from activityDate WHERE DATE(activityDate) between '2019-11-01' and '2019-11-31
再次,这很完美,但我想做某种子查询操作,每个月都做同样的事情,并将每个月的结果作为不同的别名返回,就像这样
SELECT
(AVG(activity) from activityDate WHERE DATE(activityDate) between '2019-11-01' and '2019-11-31') as novemberActivity
(AVG(activity) from activityDate WHERE DATE(activityDate) between '2019-12-01' and '2019-12-31') as decemberActivity
//?
但我的问题是在做了这些别名行之后,我该怎么做 FROM 语句?
我只想能够返回 12 个结果,每个月的平均值,都有自己的别名。
【问题讨论】:
【参考方案1】:我想你想要条件聚合:
SELECT AVG(CASE WHEN DATE(activityDate) between '2019-11-01' and '2019-11-30' THEN activity END) as activity_201911,
AVG(CASE WHEN DATE(activityDate) between '2019-12-01' and '2019-12-31' THEN activity END) as activity_201912
FROM activityDate
【讨论】:
啊,是的,就是这样!谢谢你。我已经为 mysql 和 db2 采用了这个,但这确实是我第一次使用 sqlite,所以我没有走那条路。谢谢!以上是关于Sqlite,使用分组?对于具有日期范围的子查询的主要内容,如果未能解决你的问题,请参考以下文章