Я имею дело с данными о людях, которые посетили определенное место. У каждого человека есть свой уникальный PersonID
, и каждый его визит имеет уникальный VisitID
. Я бы хотел добавить в свой запрос столбец, который подсчитывает количество отдельных записей для каждого человека (т.е. подсчитывает и отображает количество посещений этого человека). Лог c имеет смысл в моей голове, но я не уверен в синтаксисе, и аналогичные вопросы, на которые я смотрел во время исследования, просто не совсем применимы к моей ситуации.
Итак, вот что я Я смотрю на:
SELECT
PersonID,
[a few other demographic fields we'll skip for now],
VisitID,
COUNT(DISTINCT VisitID) as PersonVisits
FROM VisitInfo
WHERE VisitID IS NOT NULL
ORDER BY PersonID, VisitID
И я надеюсь увидеть такие результаты:
PersonID ... VisitID PersonVisits
------------------------------------------------
1001 ... 0277 2
1001 ... 1429 2
1002 ... 1103 1
1003 ... 0925 3
1003 ... 2276 3
1003 ... 5018 3
Я знаю, что счет PersonVisits
будет просто повторяться для каждого из записей, но это то, с чем я могу справиться для целей этого проекта (если у кого-то нет предложений по улучшению этого аспекта запроса).
Моя основная проблема в том, что
- Я не уверен, что то, что я делаю, является правильным go об этом
и
В его нынешнем виде этот запрос выдает ошибку, что
Column PersonID недействителен в списке выбора, потому что он не содержится ни в агрегатной функции, ни в GROUP BY
Я не получал эту ошибку, пока не добавил функцию СЧЁТ в список выбора.
Я на правильном пути?