#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