我想显示在一列中多次出现相同值的记录,但前提是相应列的值与原始列不同。
例如:
Name ID
NORTH 5762
NORTH 5762
EAST 7457
WEST 1234
WEST 1234
WEST 5678
我只需要看到 WEST,因为 EAST 只出现了 1 次,尽管 NORTH 出现了多次,但它们都共享相同的 ID 值。
最佳答案
SELECT a.*
FROM tableName a
WHERE EXISTS
(
SELECT 1
FROM TableName b
WHERE a.Name = b.name
GROUP BY NAME
HAVING COUNT(DISTINCT ID) > 1 AND
COUNT(*) > 1
)
输出
╔══════╦══════╗
║ NAME ║ ID ║
╠══════╬══════╣
║ WEST ║ 1234 ║
║ WEST ║ 1234 ║
║ WEST ║ 5678 ║
╚══════╩══════╝
或者如果您不想看到所有记录,
SELECT Name
FROM TableName
GROUP BY NAME
HAVING COUNT(DISTINCT ID) > 1 AND COUNT(*) > 1
输出
╔══════╗
║ NAME ║
╠══════╣
║ WEST ║
╚══════╝
关于sql - 我想显示多次出现相同值的记录,但前提是相应的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16804637/