sql - 根据两列删除记录
问题描述
我正在尝试做的是获取这些看起来像这样的记录:
Name Enrollment_Month Premium
John 20201201 $76.00
John 20201201 $54.00
Tony 20201201 $20
并将其更改为如下所示:
Name Enrollment_Month Premium
Tony 20201201 $20
基本上试图删除名称和注册月份相同的两条记录。
任何想法,我将不胜感激
解决方案
您可以使用分析功能来识别重复记录并删除它们,rowid
具体如下:
DELETE FROM YOUR_TABLE T
WHERE T.ROWID IN (
SELECT CASE
WHEN COUNT(1) OVER (PARTITION BY ENROLLMENT_MONTH, NAME) > 1
THEN ROWID
END AS ROWIDS
FROM YOUR_TABLE)
推荐阅读
- javascript - 单击一个按钮检查dom中是否存在元素,如果元素不存在,则添加它,否则将其删除
- javascript - 控制台记录数组中项目的值
- php - 我想以访客身份访问主页,但在 Laravel 中不断面对登录页面
- html - 如何使页面滚动到图像底部
- reactjs - 有什么方法可以配置与当前域相关的 baseURL 吗?
- angular - angular + nestjs中的数据库更新问题
- macos - 如何使用 zsh 从命令行打开最新的 SublimeText?
- haskell - 通过 docker-compose 将 haskell 应用程序连接到 mongodb 服务器
- javascript - 如何同步获取多个文件并将它们加载到单个变量中
- google-cloud-platform - 代码无法使用 DML 更新 BQ 上的表,但使用 RPC 插入和删除成功