Снежинка возвращает записи один раз на основе комбинации различных значений столбцов

#sql #snowflake-cloud-data-platform

Вопрос:

У меня есть таблица данных, подобная следующей:

 User ID Co_UserID   Name    Total Tickets
1514677 1377535    Jose        273013
1514677 1377535    Jose        273013
1514677 1377535    Jose        273013
1514677 1377535    Jose        273013
1514677 1377535    Jose        273013
212121  31313      Rob         21212
312312  234134     James       33
 

Как вы можете видеть, у меня есть дубликаты на основе идентификатора пользователя и идентификатора Co_userID для Хосе. Я пытаюсь вернуть отдельные записи, в которых один раз появляется комбинация идентификатора пользователя и идентификатора co_userID.

Желаемый Результат:

 User ID Co User ID  Name    Total Tickets
1514677 1377535 Jose         273013
212121  31313   Rob          21212
312312  234134  James        33
 

Я попытался выполнить запрос, подобный следующему, но выбрать несколько различий невозможно. Может кто-нибудь посоветовать?

 SELECT distinct d.User_ID, distinct d.Co_userID, d.Name, d.Total_Tickets
From DATA d
 

Ответ №1:

Вам нужен только один DISTINCT :

 SELECT distinct d.User_ID, d.Co_userID, d.Name, d.Total_Tickets
From DATA d;
 

SELECT DISTINCT это единственное ключевое слово в SQL (ну, модификация SELECT предложения). В дополнительных различиях нет необходимости.

Это работает для предоставленных вами данных. Если вам нужна одна строка для первых двух столбцов, а для остальных есть несколько значений, используйте `КВАЛИФИЦИРОВАТЬ:

 SELECT d.User_ID, d.Co_userID, d.Name, d.Total_Tickets
FROM DATA d
QUALIFY ROW_NUMBER() OVER (PARTITION BY d.User_ID, d.Co_userID ORDER BY d.User_id) = 1