Oracle Отчетливый запрос - получение различных значений за год - PullRequest
0 голосов
/ 09 июля 2020

У меня есть таблица с

  • CustomerVisitID
  • CustomerID
  • Многие другие столбцы со значениями
  • Year

Я хочу знать, нет. уникальных клиентов каждый год (с другими значениями столбца) Я не делаю группировку по.

Запрашиваю что-то вроде

select distinct(CustomerID) from CustomerVisits where year in (2016,2017,2018,2019)

Это не запрос на основе уникальных клиентов каждый год.

Например, если идентификатор клиента «5544» приходил 4 раза в 2016 г. и 3 раза в 2018 г. Я хочу, чтобы выходные данные моего запроса отображались 1 раз в 2016 г. и 1 раз в 2018 г. . Мой запрос показывает всего 1 раз, что я не хочу.

Кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Вам нужно использовать группу к тому времени

select year, count(distinct CustomerID) as CustomerID
from CustomerVisits 
where year in (2016,2017,2018,2019)
Group by CustomerID, year

Насколько я понял ваше требование, вы можете использовать два столбца отдельно следующим образом:

select distinct year, CustomerID
    from CustomerVisits 
    where year in (2016,2017,2018,2019)
0 голосов
/ 09 июля 2020

Если вы хотите сохранить все столбцы, вы можете использовать оконные функции

SELECT *
    , COUNT(DISTINCT CustomerID) OVER (PARTITION BY year) as customer_in_same_year 
FROM CustomerVisits 
WHERE year IN (2016,2017,2018,2019)

Группа не используется

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