Я работаю с таблицей, которая выглядит примерно так:
| | 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».
Даже КРЕСТ-ПРИЛОЖЕНИЕ, где я "ВЫБИРАЮ ТОП-1", требует группировки по.
Есть мысли?