【问题标题】:Get multiple records only using SELECT DISTINCT or similar仅使用 SELECT DISTINCT 或类似方法获取多条记录
【发布时间】:2014-07-16 04:06:36
【问题描述】:

我有这样的记录:

Column1 Column2
A       Blue
A       Blue
B       Red
B       Green
C       Blue
C       Red

使用SELECT DISTINCT 我明白了:

Column1 Column2
A       Blue
B       Red
B       Green
C       Blue
C       Red

我想得到什么:

Column1 Column2
B       Red
B       Green
C       Blue
C       Red

所以我只需要获取 column1 的多条记录,它们在 column2 上具有不同的值。 (我要加入两个表)

使用 SELECT DISTINCT,我更接近于我需要的内容,但我无法找到一种方法来排除 column1 上的“A”之类的记录,这些记录在 column2 上始终具有相同的值...

【问题讨论】:

  • 您使用的是什么数据库?微软SQL? MySQL?甲骨文?

标签: sql select distinct multiple-records


【解决方案1】:

试试这个:

SELECT * FROM yourtable
WHERE Column1 IN
(SELECT Column1
 FROM yourtable
 GROUP BY Column1
 HAVING COUNT(DISTINCT Column2) > 1
)

COUNT 中的 DISTINCT 可确保您仅获取 Column2 具有多个不同值的那些记录。

【讨论】:

    【解决方案2】:

    我认为这段代码适用于大多数系统:

    SELECT Col1,Col2
    FROM tbl
    GROUP BY Col1,Col2
    HAVING COUNT(*)<=1
    

    查看结果:http://sqlfiddle.com/#!6/47285/8/0

    【讨论】:

      【解决方案3】:

      假设您使用的是 MS SQL Server....DISTINCT 不是这样工作的,DISTINCT 应用于 SELECT 语句中的整个列列表,这就是您获得输出的原因提及。尝试使用GROUP BYHAVING 的组合,如下所示...

      SELECT Column1, Column2 FROM [table_name] 
      GROUP BY Column1, Column2 
      HAVING COUNT(*) < 2 
      ORDER BY Column1
      

      【讨论】:

      • 这适用于所有 sql,而不仅仅是 mssql; "select distinct" 是一个行运算符(跨整行)
      【解决方案4】:

      尝试以下查询:

      SELECT Col1,Col2
      FROM tbl
      GROUP BY Col1,Col2
      HAVING COUNT(Col1)<=1
      

      【讨论】:

      • 这似乎是所要求的(其他几个答案也是如此)。一个小的变化可能是简单地使用COUNT(Col1)=1。不应该有任何 &lt;1 计数。
      【解决方案5】:

      你可以这样使用

      select a.Column1 ,count(a.Column1 )
      from 
         (select Distinct Column1 ,Column2 
          from Items) a
      group by a.Column1 
      having Count(a.Column1 ) > 1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-25
        • 2012-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多