【问题标题】:MySQL - SELECT Most occuring value (with several same occurrences)MySQL - SELECT 大多数出现的值(有几个相同的出现)
【发布时间】:2021-07-09 11:47:07
【问题描述】:

我一直在寻找一种方法来执行 MySQL 选择以获取所有最常出现的值。我找到了使用 LIMIT 1 的所有解决方案,但如果有多个值出现相同的次数,这将无济于事。例如:

客户

ID FirstName
1 Bob
2 Tom
3 Bob
4 Robert
5 Tom
6 Timothy

大多数出现的名字的选择应该导致:

FirstName
Bob
Tom

因为两者都发生了两次。

我尝试了以下方法:

SELECT FirstName FROM (
  SELECT FirstName, COUNT(FirstName) as counter FROM customer
  GROUP BY FirstName
  HAVING counter = MAX(counter)
) s

但这似乎不起作用,我真的很感激朝着正确的方向轻推。

【问题讨论】:

    标签: mysql select


    【解决方案1】:

    可以有不同的方法来做到这一点

    你可以试试

    第一

    SELECT FIRSTNAME 
    FROM customer
    GROUP BY FirstName Having count(FirstName) = (
       SELECT COUNT(FirstName) FROM customer GROUP BY FirstName ORDER BY 1 
       DESC LIMIT 1);
    

    第二次

    with cte as
    (
      SELECT COUNT(FirstName) MaxCounter
      FROM customer 
      Group By FirstName ORDER BY  COUNT(FirstName) DESC LIMIT 1
    )
    
    SELECT c.FirstName
    From customer c
    Group BY FirstName
    HAVING COUNT(FirstName) = (SELECT MaxCounter FROM cte)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多