小编And*_*ank的帖子

SQL - 如何从两列中查找唯一值?

我正在使用 SQLite,并且只想获取每个表具有唯一值的行。我知道如何获取每列的值,但无法创建单个(sqlite 兼容)选择来从两列获取唯一值。

这是数据示例:

可乐 列_B
111 第777章
222 第333章
222 111
第444章 第333章
222 第555章
第333章 第666章
第333章 第777章

我从上面的示例中获得的期望结果是具有唯一值的行,其中仅包括:444、555、666。

可乐 列_B
第444章 第333章
222 第555章
第333章 第666章

222 不应出现在结果中,因为它在 col_A 中多次出现。777 不应出现在结果中,因为它在 col_B 中多次出现。我只需要 col_A 或 col_B 中出现一次值。每个表的唯一值,而不是列。

我能走多远:

SELECT * 
    FROM my_table
    WHERE 
        (SELECT col_A as asset from my_table GROUP BY col_A HAVING COUNT(*) = 1
         UNION
        SELECT col_B as asset from my_table GROUP BY col_B HAVING COUNT(*) = 1)
            IN (col_A, col_B)
Run Code Online (Sandbox Code Playgroud)

我尝试过 UNION 和其他一些方法,但无法达到预期的结果。

sql sqlite having

1
推荐指数
1
解决办法
397
查看次数

标签 统计

having ×1

sql ×1

sqlite ×1