当前位置: 首页 > 面试题库 >

如何选择非“唯一”行

经慈
2023-03-14
问题内容

我有下表,我必须从中获取非唯一行

+------+------+------+
| id   | idA  |infos |
+----- +------+------+
| 0    | 201  | 1899 |
| 1    | 205  | 1955 |
| 2    | 207  | 1955 |
| 3    | 201  | 1959 |
+------+------+------+

我想获取column的所有行,至少在两行infos中具有相同的idA值。

上表查询的输出必须为

infos
1899
1959

我尝试了以下请求,但均未成功:

  • SELECT idA FROM XXX WHERE NOT EXISTS(SELECT * FROM XXX GROUP BY idA)
  • SELECT * FROM XXX a WHERE NOT EXISTS(SELECT * FROM XXX b WHERE a.RVT_ID=b.RVT_ID GROUP BY idA)

问题答案:

尝试这个:

SELECT T1.idA, T1.infos
FROM XXX T1
JOIN
(
    SELECT idA
    FROM XXX
    GROUP BY idA
    HAVING COUNT(*) >= 2
) T2
ON T1.idA = T2.idA

您发布的数据的结果:

idaA的相关信息
201 1899
201 1959


 类似资料:
  • 问题内容: 有人知道为什么这对两个表别名“ x”都有效吗? 我知道ID为5的JOIN没有任何意义… 感谢您的教训! 问题答案: 下面的前两个查询是等效的。在连接的子句中,表别名仅指使用该别名的最后一个表,因此仅表受到限制。 在和表达式中,别名引用两个表-因此,列名是唯一的,则可以成功引用它们,但是,在列名相同的情况下,oracle会引发异常(如果删除了注释,则在查询3中会发生这种情况)。 我找不到

  • 问题内容: 假设我有一张桌子: 我需要获取仅提及一次的名称(在本例中为:乍得和蒂姆)。查询的是什么?谢谢。 问题答案: 您可以使用: Rextester演示

  • 问题内容: 我有一个MySQL表,其中包含以下类型的信息: 这是我用来从该表获取数据的脚本示例: 该脚本显示表格中的每个日期,例如 我只想显示唯一的日期,例如 问题答案: 在MySQL中使用DISTINCT运算符:

  • 问题内容: 基本上,我有下表: 我需要在每个列中获得唯一的条目,如以下示例所示: 到目前为止,以下代码片段几乎提供了我想要的内容,但可能会返回一些值,这在当前列中不是唯一的: 也无济于事,因为它返回唯一的行,而不是其值 编辑: 选择顺序无关紧要 问题答案: 即使使用Dimitri提到的有问题的组合,这也对我有用。我不知道这对于大音量有多快 SQLFiddle当前不适用于我,这是我的测试脚本: 输出

  • 我不希望第一项被自动选中。 我该怎么做? 尝试 没起作用