google-bigquery - 有没有办法仅在 Bigquery SQL 中区分或删除在某些条件下重复的记录?
问题描述
我正在从事一个涉及酒店监管的项目,我正在使用 Bigquery SQL 来管理我的数据库。
假设我有这张桌子:
目标是每月对酒店进行一次监督,正如您在前两列中看到的, Location = "London"中的Hotel Name = "Hilton"被监督两次,但具有不同的 Date 值。我想要做的是添加一个名为“IS Duplicate”的新列,并根据报告类型和位置列值的相似性用“重复”或“不重复”值填充它,即使日期值不同。(见下表)
你能帮我解决这个问题吗?谢谢!
解决方案
您可以使用窗口函数:
select t.*,
(case when count(*) over (partition by location, date_trunc(date, month)) > 1
then 'Duplicate' else 'Not Duplicate'
end) as is_duplicate
from t;
我建议删除 并将其case
保留为布尔值,true
或false
.
推荐阅读
- google-apps-script - 缺少云平台项目
- python - 姜戈2。Python 在单独的文件中可用
- android - 添加 facebook 依赖 gradle 错误
- rxjs - 在 Redux-Observable 中,ofType 必须紧跟其中一个映射运算符吗?
- python - 张量流量化:没有这样的包
- vba - VBA - 如果工作表数量增加,建议增加序列号的想法
- c++ - nlohmann JSON C++ 包含问题
- json - json-path:数组过滤器结果中的第一个元素
- graalvm - 将成员从宿主语言注入到访客语言作为访客语言类型
- elasticsearch - Elasticsearch 中索引的 max_result_window 设置的最大限制是多少?怎么设置成无限制?