【问题标题】:SQL Query to get rows that have 3 unique values in columnSQL 查询以获取在列中具有 3 个唯一值的行
【发布时间】:2020-12-03 12:15:17
【问题描述】:

不知道如何获取这些数据:

我有一张这样的桌子:

====================
ID     |    Source
====================
1      | google
1      | fb
1      | linkedIn
1      | linkedIn
3      | linkedIn
3      | fb

我想返回所有有 3 个来源的 Id。

所以在上表中,我希望结果集只包含 id 1,因为它被 3 个来源击中。

数据库是 mysql 5.7,所以只有 8.0 上的任何功能都不起作用。感谢您的帮助!

【问题讨论】:

标签: mysql sql group-by count having-clause


【解决方案1】:

尝试这样的查询,看看是否有帮助。它应该只返回恰好有 3 个唯一来源的 ID。

SELECT ytn.id, COUNT(DISTINCT ytn.source) AS unique_sources
FROM `your_table_name` ytn
GROUP BY ytn.id
HAVING COUNT(DISTINCT ytn.source) = 3;

【讨论】:

    【解决方案2】:

    使用聚合:

    select id 
    from mytable 
    group by id 
    having count(distinct source) = 3
    

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多