You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server中筛选Column2值相同且Column1值唯一的记录

在SQL Server中查询符合条件的记录

要找出Column2值相同且对应Column1值在全表中仅出现一次的记录,你可以用以下两种常用方法:

方法1:使用子查询统计Column1出现次数

SELECT Policy, Column1, Column2
FROM YourTable
WHERE Column1 IN (
    -- 先找出所有仅出现一次的Column1值
    SELECT Column1
    FROM YourTable
    GROUP BY Column1
    HAVING COUNT(*) = 1
)
AND Column2 = 100; -- 若需针对所有Column2分组,可移除该条件

方法2:使用窗口函数(更灵活)

窗口函数可以直接为每行计算对应Column1的全局出现次数,再筛选符合条件的行:

SELECT Policy, Column1, Column2
FROM (
    SELECT 
        Policy, Column1, Column2,
        -- 计算每个Column1在全表中的出现次数
        COUNT(*) OVER (PARTITION BY Column1) AS Column1Occurrences
    FROM YourTable
) AS SubQuery
WHERE Column1Occurrences = 1
AND Column2 = 100; -- 同样,移除该条件可适配所有Column2分组的场景

说明

两种方法都能得到你期望的结果:仅保留Column1值唯一(全表只出现一次)且Column2为指定值的记录。如果你的需求是针对每个Column2分组,找出分组内Column1唯一的记录(而非全局唯一),只需将窗口函数的PARTITION BY Column1改为PARTITION BY Column2, Column1,或者子查询的分组改为GROUP BY Column2, Column1即可。

内容的提问来源于stack exchange,提问作者SQL learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:24:28