我有一个包含 id、name、created_date 列的表。我需要得到像这样的输出
Years count_of_name_created
2010 10
2012 9
等等。现在我已经完成了两个查询,但我需要在单个查询中使用它。
我有一个包含 id、name、created_date 列的表。我需要得到像这样的输出
Years count_of_name_created
2010 10
2012 9
等等。现在我已经完成了两个查询,但我需要在单个查询中使用它。
尝试这个 ::
Select YEAR(logged_date), count(1)
from my_table group by YEAR(logged_date) order by count(1) desc
请注意,虽然上述答案是有效的,但如果您有一个月没有创建任何内容,您将得到一个缺失的行,而不是计数为 0 的行(这会使图表一团糟!)。您可以使用整数表(即,一列,10 行,值为 0 到 9)交叉连接几次以获取一系列数字,并将其作为月份添加到开始日期以获取列表个月。并将其与您的查询结合起来以获取计数(当没有匹配的记录时,为您提供计数为 0 的月份)。
鉴于 created_date 是 DateTime 类型,您可以这样做:
SELECT YEAR(created_date) AS Year, COUNT(id) FROM userTable GROUP BY YEAR(created_date);
完全按照规格:
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;
此MySQL
查询应该有效
SELECT DATE_FORMAT(created_date, '%Y') as 'year', COUNT(id) as 'total'
FROM users
GROUP BY DATE_FORMAT(created_date, '%Y')
另见这个问题