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

如何查询表中指定列值仅出现一次的完整数据行?

解决SQL查询仅出现一次的column1对应行问题

现有数据表(假设表名为your_table,注意table是SQL关键字,不能直接作为表名)的数据如下:

column1 column2 
A       1
A       2
A       3
B       1
C       1
C       2
D       1

需要筛选出column1值仅出现一次的行,预期结果:

column1 column2 
B       1
D       1

你之前的语句select column1 from table group by column1 having count(column1)=1存在两个问题:一是仅查询了column1字段,无法获取对应的column2数据;二是使用了SQL关键字table作为表名,会导致语法错误。

以下是两种可行的解决方案:

方案一:子查询关联原表

先通过子查询统计出所有仅出现一次的column1值,再关联原表获取完整行数据:

SELECT t.column1, t.column2
FROM your_table t
INNER JOIN (
    SELECT column1
    FROM your_table
    GROUP BY column1
    HAVING COUNT(*) = 1
) AS single_col1 ON t.column1 = single_col1.column1;

方案二:窗口函数筛选(适用于支持窗口函数的数据库)

利用窗口函数直接计算每个column1分组的行数,再筛选出行数为1的记录:

SELECT column1, column2
FROM (
    SELECT 
        column1,
        column2,
        COUNT(*) OVER (PARTITION BY column1) AS col1_count
    FROM your_table
) AS temp
WHERE col1_count = 1;

内容的提问来源于stack exchange,提问作者Swastik Udupa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:15:36