我有一张表格列出了人们的活动以及活动的开始/结束时间。 如何获得每个人的总记录数?
SELECT NAME,
--sum(startDT- endDT) AS minutes -- stuck here
FROM TABLE1
GROUP BY NAME
答案 0 :(得分:3)
您从开始时间减去结束时间,这将产生负值 - 尝试翻转周围的时间(从结束时间减去开始时间)。以下内容将为您提供每个NAME的记录数和总耗用时间:
SELECT NAME,
COUNT(*) AS "Records for NAME",
TO_CHAR(NUMTODSINTERVAL(SUM(END_DATE_TIME - START_DATE_TIME), 'DAY')) AS MINUTES
FROM TABLE1
GROUP BY NAME
分享并享受。
答案 1 :(得分:1)
假设startDT
和endDT
都属于date
类型,那么您真的非常接近。减去两个日期会产生天数差异。乘以24得到小时差异,再乘以60得到分钟
SELECT NAME,
sum(endDT - startDT)*24*60 AS minutes -- stuck here
FROM TABLE1
GROUP BY NAME
假设你的差异并不总是完全均匀的分钟数,那么你或者在这里获得非整数结果(例如12.5分12秒30秒),或者你想要要么round
要么trunc
要么得到整数分钟。