id、name、created_dateの列を持つテーブルがあります。次のような出力を取得する必要があります
Years count_of_name_created
2010 10
2012 9
等々。今は2つのクエリを実行しましたが、1つのクエリで必要です。
id、name、created_dateの列を持つテーブルがあります。次のような出力を取得する必要があります
Years count_of_name_created
2010 10
2012 9
等々。今は2つのクエリを実行しましたが、1つのクエリで必要です。
これを試して ::
Select YEAR(logged_date), count(1)
from my_table group by YEAR(logged_date) order by count(1) desc
created_date が DateTime 型の場合、次のようにすることができます。
SELECT YEAR(created_date) AS Year, COUNT(id) FROM userTable GROUP BY YEAR(created_date);
このMySQL
クエリは機能するはずです
SELECT DATE_FORMAT(created_date, '%Y') as 'year', COUNT(id) as 'total'
FROM users
GROUP BY DATE_FORMAT(created_date, '%Y')
上記の回答は有効ですが、何も作成されていない月がある場合は、カウントが 0 の行ではなく、行が欠落していることに注意してください (これにより、グラフが混乱します!)。整数のテーブル (つまり、1 列、0 から 9 の値を持つ 10 行) をそれ自体に対して数回クロス結合して数値の範囲を取得し、これを月として開始日に追加してリストを取得することができます。月の。そして、それをクエリに結合してカウントを取得します (一致するレコードがない場合は、カウントが 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;