Snowflake 根据不同列值的组合返回记录一次

Bla*_*ite 1 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
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有基于Jose 的用户 IDCo_userID 的重复项。我试图返回 user_ID 和 co_userID 的组合出现一次的不同记录。

期望的输出:

User ID Co User ID  Name    Total Tickets
1514677 1377535 Jose         273013
212121  31313   Rob          21212
312312  234134  James        33
Run Code Online (Sandbox Code Playgroud)

我尝试运行如下查询,但无法选择多个不同值。有人可以建议吗?

SELECT distinct d.User_ID, distinct d.Co_userID, d.Name, d.Total_Tickets
From DATA d
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

你只需要一个DISTINCT

SELECT distinct d.User_ID, d.Co_userID, d.Name, d.Total_Tickets
From DATA d;
Run Code Online (Sandbox Code Playgroud)

SELECT DISTINCT是 SQL 中的单个关键字(好吧,是SELECT子句的修改)。不需要额外的区别。

这适用于您提供的数据。如果您希望前两列为一行,并且其他列有多个值,则使用“QUALIFY:

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
Run Code Online (Sandbox Code Playgroud)