如何计算MySQL中的项目数?

问题描述

| 可以在示例中更好地说明。 我在MysqL中有以下数据
   Name   address   age    
   John1   33 St    20    
   John2   22 St    21
   John3   44 St    20
   John4   55 St    21
   John6   44 St    20
   John5   66 St    35
我想获取具有基于年龄的计数的行列表。但是是否有可能使最后一行与每个计数相关联。例
   Name   address   age   Count 
   John6   44 St    20      3
   John4   55 St    21      2
   John5   66 St    35      1
    

解决方法

        查看
GROUP BY
的语法
SELECT *,count(*) as Count FROM tableName GROUP BY age;
更新 假设您决定添加一个排序列,例如日期时间:
   Name   address   age created   
   John1   33 St    20  2011-04-01 10:00:00
   John2   22 St    21  2011-04-01 09:00:03
   John3   44 St    20  2011-04-01 07:00:20
   John4   55 St    21  2011-04-01 08:45:01
   John6   44 St    20  2011-04-01 13:00:00
   John5   66 St    35  2011-04-01 12:00:40
然后,您可以像这样完成最终目标:
  SELECT *,count(*) as Count
    FROM ( SELECT * FROM tableName ORDER BY created DESC ) as newTable
GROUP BY age;
您必须使用嵌套选择,因为否则将在
GROUP BY
之后应用
ORDER BY
。     ,        正如Stephen指出的那样,您需要执行嵌套选择,但反之则:
SELECT 
    u.Name,u.Address,u.age,u.NumCount
FROM (SELECT Name,Address,age,count(age) from users group by age) as u
ORDER BY u.NumCount desc