好吧,這很簡單,但我畫了一個空白,甚至無法想出正確的單詞組合來搜索答案。根據單元格值計算平均時間
我有一個tsql表的開始和結束時間,任務,以及新的/重複標誌。
我想拉開始和結束之間的平均持續時間,無論是記錄是新的還是重複時。我將分組任務。
我的結果看起來像任務 - NewDurationAverage - RepeatDurationAverage。
提前歡呼。
好吧,這很簡單,但我畫了一個空白,甚至無法想出正確的單詞組合來搜索答案。根據單元格值計算平均時間
我有一個tsql表的開始和結束時間,任務,以及新的/重複標誌。
我想拉開始和結束之間的平均持續時間,無論是記錄是新的還是重複時。我將分組任務。
我的結果看起來像任務 - NewDurationAverage - RepeatDurationAverage。
提前歡呼。
您的查詢應該是這樣的:
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
是的。謝謝。我很累,知道這是一個簡單的解決方案。歡呼你的指導 – Matt
您需要按照以下步驟操作:
start
和end
日期/時間列之間的差異。例如,使用DATEDIFF功能AVG
轉換以任何適當的格式,結果你想根據您的需求,您可以DATEDIFF
返回的時間差慾望格式(天,分,納秒等)。所以,必須決定結果應該如何精確(越小越好)。
你放什麼努力到現在? – mohan111
我嘗試了一個NewAvg = Case type ='new',然後avg(持續時間)結束,RepAvg = Case type ='Repeat'然後avg(duration)結束並分組,然後不得不再次分組。它正在工作,雖然 – Matt