mysql - MySQL按彼此相隔X天的日期分组
问题描述
我有一个具有此架构的 mysql 表:
id | date
------------------------------------------
1 2019-11-11
2 2019-11-10
3 2019-09-01
4 2019-08-01
如果日期彼此相隔 X 天,我希望将它们分组并计算每个组的观察计数。例如设置X = 14
天数,我希望输出是这样的:
id | count
------------------------------------------
1 | 2
2 | 1
3 | 1
4 | 1
原因是从 2019 年 11 月 11 日开始到 14 天后,在 14 天内有 2 次观察。对于所有其他观察,在观察后的 14 天内只有一次观察。
解决方案
例如:
SELECT x.id
, COUNT(y.id) total
FROM my_table x
JOIN my_table y
ON x.date BETWEEN y.date AND y.date + INTERVAL 14 DAY
GROUP
BY x.id;
推荐阅读
- spring-mvc - Spring Boot 自动配置中的异常
- powershell - 在一个位置读取多个 XML 文件并在这些文件中搜索字符串并根据字符串将文件移动到不同位置
- java - Java 类实例保存在实例主体中
- python - 比较 Python 中的矩阵并获取不匹配的位置
- swift - 使用 swift 在 GPU 上运行函数
- r - 通过第二个因素变量的组合来总结一个因素变量
- import - pentaho 迁移 EE 到 CE
- apache-spark - Spark 程序在内部调用 HDFS:/apps/hive/warehouse
- python - 对第二个值为 np.float64 的元组列表进行排序
- firebase - 我应该存储由 Firebase Admin SDK .createCustomToken(uid) 创建的令牌吗?