如何使用SQL结合GROUP BY与MIN子句实现数据删除
需求与SQL实现
需求说明
现有示例数据存储于Table1中,需保留每个PMG2_ORG、PMG2_CATEGORY分组内PMG2_Meter最小值对应的行(示例中需保留值为20的行),删除其余所有记录。
自行实现的SQL语句
DELETE FROM Table1 WHERE SQLIDENTITY NOT IN (select g1.SQLIDENTITY from Table1 G1 inner join (select PMG2_ORG, PMG2_CATEGORY, min(PMG2_METER) as pmg2_sort from Table1 group by PMG2_ORG, PMG2_CATEGORY) Q1 on q1.PMG2_ORG = g1.PMG2_ORG and q1.PMG2_CATEGORY = g1.PMG2_CATEGORY and q1.pmg2_sort = g1.PMG2_METER)
对应表说明
- Table-1:原始数据表
- Table-2:分组聚合后的结果表
- Table-3:标记需保留(绿色行)和需删除(红色行)的表
内容的提问来源于stack exchange,提问作者Kannan
相关产品推荐
相关产品推荐

