Google bigquery BigQuery/SQL-删除指定参数列中的重复项
我需要删除指定参数的一列中的重复项。 需要将market_offers列中的重复项替换为null,并且只保留一个值 但有一种情况是,有不同的等级,所以我需要为每个等级和国家/地区代码留下唯一的值 BigQuerySQL 结果Google bigquery BigQuery/SQL-删除指定参数列中的重复项,google-bigquery,Google Bigquery,我需要删除指定参数的一列中的重复项。 需要将market_offers列中的重复项替换为null,并且只保留一个值 但有一种情况是,有不同的等级,所以我需要为每个等级和国家/地区代码留下唯一的值 BigQuerySQL 结果 country_code rank store_id category_id offers market_offers se 1 14582 1106 410 504860 se
country_code rank store_id category_id offers market_offers
se 1 14582 1106 410 504860
se 1 1955 1294 2 504860
se 1 9831 1158 151 504860
se 2 666 11158 536 4000
se 2 6587 25863 6586 4000
se 2 6666 158 536 4000
se 5 65853 76722 1521 302
se 5 6587 25863 6586 302
预期结果
country_code rank store_id category_id offers market_offers
se 1 14582 1106 410 504860
se 1 1955 1294 2 null
se 1 9831 1158 151 null
se 2 666 11158 536 4000
se 2 6587 25863 6586 null
se 2 6666 158 536 null
se 5 65853 76722 1521 302
se 5 6587 25863 6586 null
下面考虑一下
select * except(market_offers),
if(
row_number() over(partition by market_offers, rank) = 1,
market_offers,
null
) as market_offers
from `project.dataset.table`
如果应用于问题中的样本数据,则输出为
你能粘贴一个输入数据和所需输出的示例吗?你不能对所需的列使用DISTINCT吗感谢效果很好:)还有一件事……当我试图将此结果提交给DataStudio时,我遇到了另一个问题,那么,这是否可能以另一种方式实现它。。。我在考虑按参赛人数划分全国唯一排名的数字?所以从上面的数据来看,排名5应该是151,排名2-1333等等…当然。你原来的问题已经完全回答了。请发布新问题和所有相关细节,我将很乐意提供帮助:o)这是新帖子:)谢谢你的帮助:)
select * except(market_offers),
if(
row_number() over(partition by market_offers, rank) = 1,
market_offers,
null
) as market_offers
from `project.dataset.table`