sql - 针对一年中的季度或周运行查询
问题描述
我有一个适用于 1 个季度的查询。但是,如果我想在日历年的第 2、第 3 和第 4 季度甚至每周执行相同的查询,该怎么办?
如何在不必手动更改定义一年中的季度或周的值的情况下执行相同的查询?
SELECT count(1), AVG(resolved_at::TIMESTAMP - created_at::TIMESTAMP)
FROM supp_cases
WHERE created_at::TIMESTAMP >= '2017-01-01 00:00:00'::TIMESTAMP
AND resolved_at::TIMESTAMP <= '2017-03-31 23:59:59'::TIMESTAMP;
Q1 = 2017-01-01 00:00:00 TO 2017-03-31 23:59:59
Q2 = 2017-04-01 00:00:00 TO 2017-06-30 23:59:59
Q3 = 2017-07-01 00:00:00 TO 2017-09-30 23:59:59
Q4 = 2017-10-01 00:00:00 TO 2017-12-31 23:59:59
解决方案
这个怎么样?
SELECT TO_CHAR(created_at, 'YYYY-Q') as created_at_yyyyq,
TO_CHAR(resolved_at, 'YYYY-Q') as resolved_at_yyyyq,
count(*)
FROM supp_cases
GROUP BY created_at_yyyyq, resolved_at_yyyyq
ORDER BY created_at_yyyyq, resolved_at_yyyyq;
如果您真的希望在同一季度创建和解决行,您可以添加:
WHERE TO_CHAR(created_at, 'YYYY-Q') = TO_CHAR(resolved_at, 'YYYY-Q')
推荐阅读
- google-apps-script - 用于在 forEach 循环中复制和粘贴先前 i 值的 Google Apps 脚本功能
- node.js - 无法更新猫鼬中的对象数组
- python-3.x - 检查路径是否在网页抓取中动态生成
- python - 您好,请帮我找出错误。下面的代码不断返回“无法分配给函数调用”
- c - 在选择排序中,降序数组的性能比升序数组快。为什么?
- angular - 在 ag-grid 中如何获取动态标题名称?
- swiftui - 在 SwiftUI 中发布可访问性通知
- python - 将仪表指示器中的条形原点设置为在 plot.ly 中从 0 开始
- ruby-on-rails - 通过rails中的多对多关系销毁实体
- c++ - 意外行为从 lambda 函数内的 std::bitset 返回一个值