【问题标题】:Query order by count按计数查询顺序
【发布时间】:2012-01-19 10:59:24
【问题描述】:

身份证名称

  • 1 个自编
  • 2 奎
  • 3 Asd
  • 4 Asd
  • 5 奎
  • 6 天

我需要一个查询按计数返回组顺序;

身份证名称

  • 1 个自编
  • 2 奎
  • 3 天

【问题讨论】:

  • 我试过 SELECT name FROM users k1 JOIN ( SELECT name, COUNT(*) cnt FROM users GROUP BY name) k2 ON ( k1.name = k2.name ) ORDER BY k2.cnt DESC
  • 那你为什么不在你的问题中加入这个陈述呢?

标签: mysql count sql-order-by


【解决方案1】:

试试这个可能会有帮助,

SELECT COUNT(Name) AS total, id, Name
FROM table_name
GROUP BY Name   
ORDER BY COUNT(Name) DESC;

【讨论】:

    【解决方案2】:
    SELECT @rownum:=@rownum+1  AS ID,
           NameList.iName
    FROM 
          (SELECT DISTINCT iName, COUNT(iName) AS iCount 
           FROM people 
           GROUP BY iName 
           ORDER BY iCount DESC) NameList, 
          (SELECT @rownum:=0) r 
    

    更改此子查询

          (SELECT DISTINCT iName, COUNT(iName) AS iCount 
           FROM people 
           GROUP BY iName 
           ORDER BY iCount DESC)
    

    到带有名称列表的表。

    【讨论】:

      【解决方案3】:

      检查一下

      SELECT id, Name FROM user
      GROUP BY Name   
      ORDER BY COUNT(Name) DESC;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-15
        • 2013-04-17
        • 1970-01-01
        • 2022-08-09
        相关资源
        最近更新 更多