我正在使用一个看起来像这样的表:
| | Name | CaseID | UsrID | DL_NO | SSN | Address | DateSeen |
|---|:-----:|:------:|:-----:|:-----:|:-------:|-------------|------------|
| 1 | Smith | AB190 | 88885 | | 1234567 | 222 Side Rd | 01/01/2020 |
| 2 | Smith | AB186 | 88885 | B0938 | | | 10/01/2019 |
| 3 | Smith | AB170 | 88885 | | 1234567 | 123 Side Rd | 09/01/2019 |
| 4 | Smith | AB168 | 88885 | B0938 | | 123 Road St | 03/05/2019 |
| 5 | Smith | AB132 | 88885 | B0938 | 1234567 | | 03/01/2019 |
| 6 | Smith | AB102 | 88885 | B0938 | 1234567 | 123 Road St | 02/01/2019 |
我无法理解如何正确包含更新/偶尔丢失位的数据。
我想看到的是每列最新的非空值:
| | Name | NumOfCases | UsrID | DL_NO | SSN | Address |
|---|:-----:|:----------:|:-----:|:-----:|:-------:|-------------|
| 1 | Smith | 6 | 88885 | B0938 | 1234567 | 222 Side Rd |
我正在使用这个:
SELECT TOP 50 Name, UsrID, COUNT(DISTINCT CaseID) as NumofCases
FROM People
WHERE DateSeen between 01/31/2019 and 10/02/2019
GROUP BY Name, UsrID
ORDER BY DateSeen desc
退货
| | Name | UsrID | NumofCases |
|---|:-----:|-------|:----------:|
| 1 | Smith | 88885 | 6 |
在我意识到我对其他领域有用之前,这一切正常。
当我尝试对附加列进行类似查询时,强制 GROUP BY 显然会破坏“NumofCases”计数。
即使是我“SELECT TOP 1”的 CROSS APPLY 也需要分组依据。
有什么想法吗?