Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 поиск уникального значения  [new]
Adilemm3
Member

Откуда:
Сообщений: 3
Суть запроса:Вывод Топ 3 месяца с указанием года по количеству уникальных клиентов за 2018-2019 год .
На текущем этапе я могу только подсчитать количество посещений по месяцам и годам
То есть допустим клиент был 4 августа 2018 года и 2 ноября 2018 года. Для августа он уникальный, а для ноября уже нет. Вот я и не понимаю как мне сравнивать.
Сам запрос:
select top (3) year([Дата посещения]), MONTH([Дата посещения]), count(year([Дата посещения])+'-'+ MONTH([Дата посещения]))
from Посещения
group by year([Дата посещения]), MONTH([Дата посещения])

Приложил структуру таблицы.

К сообщению приложен файл. Размер - 5Kb
31 окт 19, 19:47    [22007537]     Ответить | Цитировать Сообщить модератору
 Re: поиск уникального значения  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
select top (3)
 year([Дата посещения]), month([Дата посещения]), count(distinct when b.[ID клиента] is null then a.[ID клиента] end) as [Количество]
from
 Посещения a left join
 (
  select
   [ID клиента], min([Дата посещения])
  from
   Посещения
  group by
   [ID клиента]
 ) b([ID клиента], [Дата посещения]) on b.[ID клиента] = a.[ID клиента] and datediff(month, b.[Дата посещения], a.[Дата посещения]) > 0
group by
 year([Дата посещения]), month([Дата посещения])
order by
 [Количество] desc;
31 окт 19, 21:38    [22007585]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить