SQL-запрос для подсчета идентификаторов - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь написать SQL-запрос в MS Access, чтобы подсчитать, сколько раз каждый идентификатор появляется в наборе данных. Набор данных отформатирован следующим образом:

ID    Time
1     12345
1     12346
1     12350
2     99999
2     99999

Если Время для одного ID находится в пределах 3 секунд от другого Время для того же ID , я хочу только быть посчитанным один раз Таким образом, результаты должны выглядеть следующим образом:

ID    Count
1     2
2     1

Столбец времени не отформатирован как дата и время, поэтому я не могу использовать функцию datediff. Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Комментарий, предоставленный @Andy G, сработал для моих целей:

"Сначала вам нужна функция для округления в большую или меньшую сторону до ближайшего кратного 3. См. здесь (allenbrowne), например. "

Я округлил значения времени до ближайшего кратного 3 и посчитал на основе этого критерия.

0 голосов
/ 12 ноября 2018

Это:

SELECT ID, COUNT(newtime)
FROM (SELECT DISTINCT ID, Time\3 AS newtime FROM times)
GROUP BY ID

группирует значения поля Time в тройки, используя целочисленное деление для Time\3 в Access.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...