postgresql - 我想要按时隙 postgres 分组的记录计数
问题描述
假设我在表中有在 DateTime 列创建的记录。然后我希望结果看起来像
time window | count
9am-3pm | 9
3pm-6pm | 12
其中 time window 是时间,如果在此时间之间创建了记录,则 count 是一个数字。
解决方案
您可以尝试使用CASE WHEN
withdate_part
功能GROUP BY
查询 1:
SELECT CASE WHEN date_part('hour',dt) BETWEEN 3 AND 15 THEN '9am-3pm'
WHEN date_part('hour',dt) BETWEEN 15 AND 18 THEN '3pm-6pm' END "time window",
COUNT(*)
FROM T
GROUP BY CASE WHEN date_part('hour',dt) BETWEEN 3 AND 15 THEN '9am-3pm'
WHEN date_part('hour',dt) BETWEEN 15 AND 18 THEN '3pm-6pm' END
结果:
| time window | count |
|-------------|-------|
| 3pm-6pm | 1 |
| 9am-3pm | 1 |
推荐阅读
- python - Python 中的 NLP 扩展缩写
- python - 如何在 Python 中使用 Ursina 播放 MP4
- javascript - 在 react-native 安全中更新数组
- javascript - 调用 JQuery 声明中存在的嵌套函数
- python - 使用 LSTM 层训练模型期间的 NaN 和 inf
- flutter - Flutter Retrofit 异常 403 Forbidden
- android - 如何使用 Root POST 改造返回 JSONArray
- javascript - 打字稿泛型或在变量上声明类型
- reactjs - 将对象作为道具而不是纯字符串传递时,Nextjs getStaticProps 错误
- tomcat9 - tomcat 9 windows在日志文件和控制台中重定向stdout stderr