0

id、name、created_dateの列を持つテーブルがあります。次のような出力を取得する必要があります

Years  count_of_name_created

2010     10

2012      9

等々。今は2つのクエリを実行しましたが、1つのクエリで必要です。

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

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

この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 に答える
0

上記の回答は有効ですが、何も作成されていない月がある場合は、カウントが 0 の行ではなく、行が欠落していることに注意してください (これにより、グラフが混乱します!)。整数のテーブル (つまり、1 列、0 から 9 の値を持つ 10 行) をそれ自体に対して数回クロス結合して数値の範囲を取得し、これを月として開始日に追加してリストを取得することができます。月の。そして、それをクエリに結合してカウントを取得します (一致するレコードがない場合は、カウントが 0 の月が返されます)。

于 2012-11-29T12:22:38.703 に答える
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 に答える