0

我有一个包含 id、name、created_date 列的表。我需要得到像这样的输出

Years  count_of_name_created

2010     10

2012      9

等等。现在我已经完成了两个查询,但我需要在单个查询中使用它。

4

5 回答 5

1

尝试这个 ::

Select YEAR(logged_date), count(1)
from my_table group by YEAR(logged_date) order by count(1) desc
于 2012-11-29T12:10:51.787 回答
0

请注意,虽然上述答案是有效的,但如果您有一个月没有创建任何内容,您将得到一个缺失的行,而不是计数为 0 的行(这会使图表一团糟!)。您可以使用整数表(即,一列,10 行,值为 0 到 9)交叉连接几次以获取一系列数字,并将其作为月份添加到开始日期以获取列表个月。并将其与您的查询结合起来以获取计数(当没有匹配的记录时,为您提供计数为 0 的月份)。

于 2012-11-29T12:22:38.703 回答
0

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

SELECT YEAR(created_date) AS Year, COUNT(id) FROM userTable GROUP BY YEAR(created_date);
于 2012-11-29T12:11:20.607 回答
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;
于 2012-11-29T12:31:20.547 回答
0

MySQL查询应该有效

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

另见这个问题

于 2012-11-29T12:12:57.483 回答