+-------+-------+-----------+
| 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
これはのEmpIDの平均日数として13と31を与えているようですそれぞれ1および2である。 20および47.5ではない。外部の平均関数には計算に0が含まれているため、効果的に3を超えて2を平均で計算していません。 – AS91
LAGのデフォルトのVisitDateを削除すると、あなたの解決策の秘訣は – AS91
@ AS91 ..あなたは正しい答えを編集しています。 –