0

次のようなテーブルがあるとします。

id | assignment | duedate
1  | Math       | 2012-01-01
2  | History    | 2012-02-02
3  | Science    | 2012-01-01
4  | Government | 2012-02-01
5  | Government | 2013-01-13
6  | History    | 2013-03-13

月と年ごとにすべての日付をグループ化するような SQL クエリを作成することは可能ですか? 次のソート結果を取得できる可能性はありますか?

duedatemonth  | count 
January 2012  | 2
Feburary 2012 | 2
January 2013  | 1
March 2013    | 1

GROUP BY duedate ができることは知っていますが、それは月と年だけでなく、同じ月、日、年を持つものだけをグループ化します。

次に、「割り当て」を考慮して結果のテーブルを取得するように、さらにグループ化することは可能でしょうか?

id | duedatemonth  | count 
1  | January 2012  | 2
3  | January 2012  | 2
2  | Feburary 2012 | 2
4  | Feburary 2012 | 2
5  | January 2013  | 1
6  | March 2013    | 1
4

3 に答える 3

0

文字列関数YEARとを使用しますMONTH

SELECT YEAR(duedate), MONTH(duedate), COUNT(*)
FROM sparkles
GROUP BY YEAR(duedate), MONTH(duedate)

MONTHNAMEまたはを使用DATE_FORMATして、月の名前を取得します。

于 2013-02-21T22:05:57.057 に答える
0

これを試して

    SELECT DATE_FORMAT(duedate,'%M %Y')  duedatemonth, COUNT(*) count
    FROM Table1
   GROUP BY year(duedate), MONTH(duedate)

デモはこちら

これを出力します:

   DUEDATEMONTH     COUNT
   January 2012     2
  February 2012     2
   January 2013     1
     March 2013     1
于 2013-02-21T22:25:22.510 に答える
0

このクエリを使用できます。

SELECT DATE_FORMAT(duedate, '%M %Y') duedatemonth, COUNT(1) `count`
FROM Tbl
GROUP BY DATE_FORMAT(duedate, '%M %Y')
于 2013-02-21T22:14:54.980 に答える