我正在使用 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 和其他一些方法,但无法达到预期的结果。