sql - 我想显示多次出现相同值的记录,但前提是相应的

标签 sql sql-server

我想显示在一列中多次出现相同值的记录,但前提是相应列的值与原始列不同。

例如:

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/

相关文章:

php - '%deb %' is showing up as ' �b%' 当我发送 $_GET 查询时?

SQL MAX() 函数返回所有结果

ios - ASIHttpRequest:有人能看到正在发送的 URL 吗?

sql-server - 这个语句有什么作用 @@RowCount > 0

SQL Server 无法对包含聚合或子查询的表达式执行聚合函数

php - 如何创建数据库和表,并用数据填充它们?我有错误

mysql - 从mysql中具有多个单词的字段中提取电子邮件ID

java - hibernate 中不区分大小写的搜索

sql - 插入带有标识的多行时是否保证顺序?

sql-server - 临时表和存储过程编译