【发布时间】:2020-03-28 04:24:23
【问题描述】:
我想选择足够多的音频通话来获得 00:10:00 分钟的音频。我试图通过编写以下 SQL (postgres) 语句来实现这一点
SELECT file_name, audio_duration
FROM (
SELECT distinct file_name, audio_duration, SUM(audio_duration)
OVER (ORDER BY audio_duration) AS total_duration
FROM data
) AS t
WHERE
t.total_duration <='00:10:00'
GROUP BY file_name, audio_duration
我的问题是它似乎没有正确计算总持续时间。 我怀疑这是因为 audio_duration 列是 TIME 类型。
如果有人对如何进行此查询有任何提示或建议,将不胜感激。
【问题讨论】:
-
请提供样本数据。
audio_duration的数据类型是什么? -
什么是
duration类型的time而不是interval?time存储“时刻”,而不是持续时间。 -
他写道,'audio_duration' 属于 TIME 类型
-
持续时间的类型是时间类型而不是间隔类型。
-
我明白,但这是错误的数据类型。要存储持续时间,您应该使用
interval- 您无法及时总结时间点(“早上 8 点”和“下午 3 点”的总和是多少?)
标签: sql postgresql datetime time sum