当前位置:网站首页>SQL教程之6种鲜为人知的 SQL 技术,可帮助您每月节省 100 小时

SQL教程之6种鲜为人知的 SQL 技术,可帮助您每月节省 100 小时

2022-06-21 18:45:00 知识大胖

在八年的数据职业生涯中,我依靠一些简单但鲜为人知的 SQL 技术为自己节省了无数时间来执行分析和构建 ETL 管道。

在本文中,我将反复分享六个:

  • 从表中查找和删除重复记录
  • 从表中查询最近的一组记录
  • 在每月或每周开始/结束的级别汇总每日数据
  • 聚合自定义(CASE WHEN)类别的数据
  • 在同一张表中找出今天和昨天(或任何两个日期)之间的差异
  • 将一个表中的数据合并到另一个表中(简单的方法)
  • 监控每天向表中添加多少新记录。
  • 识别在“快照”表中的两个日期之间添加的新记录

从表中查找和删除重复记录

with x as (select *, row_number() over(partition by [key],[key],[key] order by [key]) as rowRank from {schema}.{table})
select * from x where rowRank > 1;

没有什么比重复更糟糕的了。可怕的重复记录给我的数据生命周期带来了巨大的痛苦。重复几乎会弄乱任何分析或仪表板——尤其是那些不会因为简单的 DISTINCT 子句而消失的分析或仪表板。有多种方法可以识别重复项——但我发现上面的例子是最简单的。

只需将主查询包装在 CTE 中,然后在您希望检查的所有变量之后,添加一个row_number函数,该函数在所有表键上进行分区。分区必须包含所有表键才能正常工作,否则您可能会将非重复项分类错误。row_number函数在这里所做的是对您提供的键的所有实例进行排名。在您的 CTE 之后,运行一个简单的选择和过滤 WHERE 您的新row_number函数 字段大于 1。输出将返回所有重复记录 - 因为任何rowRank > 1的记录在表中都

原网站

版权声明
本文为[知识大胖]所创,转载请带上原文链接,感谢
https://swiftui.blog.csdn.net/article/details/125394268