sql - 如何删除 sas 表中每个组的第一次出现?
问题描述
我的数据如下:
ID,date
1,27-08-2020
1,28-08-2020
1,30-08-2020
2,05-08-2020
3,06-08-2020
3,10-08-2020
我必须删除每个 ID 组的第一次出现。这样数据就变成了
ID,date
1,28-08-2020
1,30-08-2020
2,05-08-2020
3,10-08-2020
如何在 sas/sql 中做到这一点。
解决方案
您可以使用相关子查询:
select t.*
from t
where t.date > (select min(t2.date) from t t2 where t2.id = t.id);
您还可以将此想法合并到delete
:
delete from t
where t.date = (select min(t2.date) from t t2 where t2.id = t.id);
推荐阅读
- unity3d - IAP 服务未初始化:没有 MonoBehaviour 的 IStoreListener,可能吗?
- c# - 是否有简单的机制可以在.net 中将属性保留一段有限的时间?
- java - 生成的 java 文件中的第 [14] 行出现错误:只能导入一个类型。sito.progettoweb 解析为一个包
- javascript - Meteor.js RangeError:超出最大调用堆栈大小
- reactjs - 如何测试需要父组件功能的组件单击?
- python - Django delete() 在 form_valid 中不起作用
- javascript - 为什么 Pod 依赖管理器没有检测到安装所需的模块?
- javascript - 如何从 MVC 视图向 js 中的方法发送 3 个参数?
- d3.js - 在 svg 中缩放 D3 图表,同时保持边距相同的宽度?
- .net - 使用 oauth 对 Angular 和 .Net 核心应用程序进行身份验证和授权