gpt4 book ai didi

sql - Oracle/SQL 中的时间分片

转载 作者:行者123 更新时间:2023-12-03 16:00:45 25 4
gpt4 key购买 nike

我有一个大型 Oracle 表,其中包含表示工作单元的行,除了其他元数据之外,还有用于开始时间和结束时间的列。

给定一些任意过滤标准和报告时间段,我需要根据这些数据生成使用图。例如,向我展示从上周二早上 7:00 开始的 24 小时内 Alice 的所有工作的图表。每个 DB 行将在图中垂直堆叠。

我可以通过查询所有可能相关的行,将每个行按时间划分为 1 分钟的时间段,并绘制结果图表,从而以高级语言执行此操作。但是有没有一种有效的方法可以在 SQL 中进行时间切片?或者是否有现有的 Oracle 技术可以做到这一点?

谢谢!

最佳答案

在获取数据方面,您可以使用“group by”和“truncate”。 ' 将数据切成 1 分钟的间隔。例如:

SELECT user_name, truncate(event_time, 'YYYYMMDD HH24MI'), count(*)
FROM job_table
WHERE event_time > TO_DATE( some start date time)
AND user_name IN ( list of users to query )
GROUP BY user_name, truncate(event_time, 'YYYYMMDD HH24MI')

这将为您提供如下结果(假设 alice 在 8.00 和 8.01 之间有 20 行,在 8.01 和 8.02 之间有 40 行):
Alice  2008-12-16 08:00   20
Alice 2008-12-16 08:01 40

关于sql - Oracle/SQL 中的时间分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com