好的,这很简单,但是我画了一个空白,甚至无法考虑正确的单词组合来搜索答案。
我有一个包含开始和结束时间,任务以及新/重复标志的tsql表。
我想拉开开始和结束之间的平均持续时间,无论是新记录还是重复记录。我将分组任务。
我的结果看起来像Task - NewDurationAverage - RepeatDurationAverage。
提前干杯。
答案 0 :(得分:1)
您的查询应该是这样的:
SELECT TaskId, NewDurationAverage, RepeatDurationAverage FROM
(SELECT TaskId, DATEDIFF(hh, TaskStart, TaskEnd) as NewDurationAverage
FROM Task WHERE IsNew=1 GROUP BY TaskId) NewTasks
LEFT OUTER JOIN
(SELECT TaskId, DATEDIFF(hh, TaskStart, TaskEnd) as RepeatDurationAverage
FROM Task WHERE IsRepeat=1 GROUP BY TaskId) RepeatTasks
ON NewTasks.TaskId=RepeatTasks.TaskId
答案 1 :(得分:0)
您需要按照以下步骤操作:
start
和end
日期/时间列之间的差异。例如,使用DATEDIFF函数AVG
根据您的需要,您可以让DATEDIFF
以期望的格式(天,分,纳秒等)返回时差。因此,必须决定结果的准确程度(越小越好)。