Mysql查询基于年份创建的用户数的计数

时间:2012-11-29 12:08:13

标签: mysql

我有一个包含列id,name,created_date的表。我需要像

那样退出

年count_of_name_created

2010 10

2012 9

儿子。现在我已经完成了两个查询,但我需要在单个查询中。

提前致谢......

5 个答案:

答案 0 :(得分:1)

试试这个::

Select YEAR(logged_date), count(1)
from my_table group by YEAR(logged_date) order by count(1) desc

答案 1 :(得分:0)

鉴于created_date的类型为DateTime,您可以这样做:

SELECT YEAR(created_date)AS年,COUNT(id)FROM userTable GROUP BY YEAR(created_date);

答案 2 :(得分:0)

这个MySQL查询应该可以工作

SELECT DATE_FORMAT(created_date, '%Y') as 'year', COUNT(id) as 'total'
FROM users
GROUP BY DATE_FORMAT(created_date, '%Y')

另见qeustion

答案 3 :(得分:0)

请注意,虽然上面的答案是有效的,但如果你有一个月没有创建任何东西,你将会找到一个缺失的行,而不是一个计数为0的行(这会使图形混乱!)。 您可以使用一个整数表(即一列,10行,值为0到9)交叉连接几次以获得一系列数字,并将其作为月份添加到开始日期以获取列表几个月并根据您的查询加入计数以获取计数(如果没有匹配的记录,则为您提供数量为0的月份。)

答案 4 :(得分:0)

完全符合规范:

Select YEAR(created_date) as Years, 
       count(name) as count_of_name_created
from <table_name> 
group by YEAR(created_date) 
order by count(name) desc;