【问题标题】:PHP SQL Return the field with highest countPHP SQL 返回计数最高的字段
【发布时间】:2014-07-30 13:11:26
【问题描述】:

我需要一个返回包含最高计数的站点的查询。

请参阅下面的示例表:

字段:

id | site

1  | site1
2  | site2
3  | site3
4  | site3 

在上面的这种情况下,它应该返回 site3。

我该怎么做?

【问题讨论】:

  • select count(*) as total from table group by site order by total desc limit 1

标签: php mysql sql sql-server


【解决方案1】:

SQL Server (SQL Fiddle):

SELECT TOP 1 site
FROM MyTable
GROUP BY site
ORDER BY COUNT(*) DESC

或 MySQL (SQL Fiddle):

SELECT site 
FROM MyTable
GROUP BY site
ORDER BY COUNT(*) DESC
LIMIT 1

【讨论】:

    【解决方案2】:
    select site, count(id) from table group by site order by count(id) desc limit 1
    

    应该有效

    【讨论】:

      【解决方案3】:

      试试这个:

      SELECT site, 
               COUNT(site) TotalCount
          FROM table_name
      GROUP BY site
        ORDER BY count(id) DESC LIMIT 1
      

      【讨论】:

      • 这将返回计数为 2 或更大的任何站点。对于示例数据,它将返回site3。但是,如果有多个 sites 有多个条目,它将全部返回。
      【解决方案4】:

      这个应该可以的

      select max(C), S from (select count(id) C ,site S from table group by site) tab
      

      【讨论】:

        【解决方案5】:

        简单的countgroup 查询和order by 计数列

        SELECT 
              COUNT(id) as amount, 
              site 
        FROM sitetable 
        
        GROUP BY site 
        ORDER BY amount DESC 
        LIMIT 1
        

        【讨论】:

          【解决方案6】:

          如果您想要字段 site 作为结果,请执行以下查询:

          SELECT COUNT(site), site FROM tab GROUP BY site DESC LIMIT 1

          【讨论】:

            【解决方案7】:

            选择 MAX(id) 作为 id,site FROM demo

            回来了
            标识网站
            4 站点3

            【讨论】:

            • max 函数只返回当前列的最大值
            • 你想要 max id 和 max id 站点名称或值对吗?
            • 我不是问这个问题的人,但我认为你误解了这个问题。他想要表中出现次数最多的site
            猜你喜欢
            • 1970-01-01
            • 2015-09-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-07-18
            • 2012-05-23
            • 1970-01-01
            • 2012-10-27
            相关资源
            最近更新 更多