在我的表中,一些记录的所有列值都相同,除了一个。我需要编写一个查询来获取这些记录。什么是最好的方法呢?表格是这样的:
colA colB colC
a b c
a b d
a b e
获取所有列的所有记录的最佳方法是什么?感谢大家的帮助。
答案 0 :(得分:8)
假设您知道column3将始终不同,以获取具有多个值的行:
SELECT Col1, Col2
FROM Table t
GROUP BY Col1, Col2
HAVING COUNT(distinct col3) > 1
如果您需要三列中的所有值,则可以将其连接回原始表:
SELECT t.*
FROM table t join
(SELECT Col1, Col2
FROM Table t
GROUP BY Col1, Col2
HAVING COUNT(distinct col3) > 1
) cols
on t.col1 = cols.col1 and t.col2 = cols.col2
答案 1 :(得分:1)
只需选择具有不同值的行:
SELECT col1, col2
FROM myTable
WHERE colWanted != knownValue
如果这不是您要找的,请在表格中列出数据示例和所需的输出。
答案 2 :(得分:1)
像
这样的东西SELECT Col1, Col2
FROM Table
GROUP BY Col1, Col2
HAVING COUNT(*) = 1
这将为您提供具有唯一数据的Col1,Col2。
答案 3 :(得分:0)
假设col3有difs
SELECT Col1, Col2
FROM Table
GROUP BY Col1, Col2
HAVING COUNT(*) > 1
或者显示所有3个COLS
SELECT Col1, Col2, Col3
FROM Table1
GROUP BY Col1, Col2, Col3
HAVING COUNT(Col3) > 1