+-------+-------+-----------+
| EmpID | PerID | VisitDate |
+-------+-------+-----------+
| 1 | 22 | 2/24/2017 |
| 1 | 22 | 3/25/2017 |
| 1 | 22 | 4/5/2017 |
| 2 | 33 | 5/6/2017 |
| 2 | 33 | 8/9/2017 |
| 2 | 33 | 6/7/2017 |
+-------+-------+-----------+
我正在嘗試查找每個EmpID的訪問次數和平均訪問日期。對於Avg,我首先必須連續訂購,然後找到平均值。每個組的訂購日期之間的平均天數
例如: EmpID = 1和PerID = 22的天數將是[29(3/25和2/24之間的天數)+11(3/25和4/5之間的天數)/ 2] = 20天。
所需的輸出:
+-------+-------+----------+----------+
| EmpID | PerID | MaxVDate | AvgVDays |
+-------+-------+----------+----------+
| 1 | 22 | 4/5/2017 | 20 |
| 2 | 33 | 8/9/2017 | 47.5 |
+-------+-------+----------+----------+
嘗試:
SELECT
EmpID
,PerID
,MAX(VisitDate) AS MaxVDate
,--Dunno how to find average AS AvgVDays
FROM
T1
GROUP BY
EmpID
,PerID
這似乎給13和31的平均天數爲的EmpID 1和2。不是20和47.5。由於外部的Avg函數在計算中包含0,因此它在平均值中有效地計算超過3而不是2。 – AS91
刪除LAG上的默認VisitDate會爲您的解決方案 – AS91
@ AS91訣竅..你是正確的答案。 –