sql - Oracle 按分钟而不是每天分组
问题描述
我写了一个查询来获取每天收到的数据。
alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';
SELECT to_CHAR(created_date, 'yyyy/mm/dd'), status_code, COUNT(workflow_txn_id_log)
FROM workflow_txn_log
WHERE status_code = 'DOWNLOAD_ALL' AND created_date > '2021/08/11'
GROUP BY to_CHAR(created_date, 'yyyy/mm/dd'), status_code
ORDER BY to_CHAR(created_date, 'yyyy/mm/dd');
现在我想获取关于按升序排序的每一分钟的数据。我试图更改日期格式,但没有任何效果。我怎么做?
解决方案
听起来你想要
SELECT trunc(created_date, 'mi') created_minute,
status_code,
COUNT(workflow_txn_id_log)
FROM workflow_txn_log
WHERE status_code = 'DOWNLOAD_ALL'
AND created_date > date '2021-08-11'
GROUP BY trunc(created_date, 'mi'), status_code
ORDER BY trunc(created_date, 'mi');
trunc(created_date, 'mi')
返回date
被截断为分钟的 a(即秒设置为 0)。这意味着order by
将使用日期比较语义对日期进行排序,而不是您想要的字符串比较语义。该where
子句created_date
与 adate
而不是字符串进行比较,这样您就不会进行隐式转换。
推荐阅读
- c++ - 我的 RSU 如何在 Veins 中以周期性时间间隔调用函数?
- python - 浏览器上的 xpath 和响应不同
- appium - 如何使用 Appium 检查 Windows 应用程序
- prolog - 如果在列表中,Prolog如何在列表中添加元素
- java - 如何为 QuickFIX/J 日志配置 log4j2.xml?
- jenkins-groovy - groovy.lang.MissingPropertyException:没有这样的属性:为类构建
- reactjs - 从 React App 调用 fetch 时解决 CORS 问题
- c++ - 为什么 __cplusplus 在 extern "C" 中定义
- python - pandas groupby 多列默认情况下不对值进行排序
- java - 如何将信息从一个 java 类传递到另一个