sql >> データベース >  >> RDS >> Mysql

日時フィールドしかない場合、月と年でグループ化するにはどうすればよいですか?

    抽出物でグループ化する必要があります。

    SELECT 
        SUM(amount)
    FROM 
        transaction
    GROUP BY 
        EXTRACT(MONTH FROM when),
        EXTRACT(YEAR FROM when)
    

    そして、それらの列が必要な場合は、

    SELECT
        EXTRACT(MONTH FROM when) as month, 
        EXTRACT(YEAR FROM when) as year, 
        SUM(amount)
    FROM 
        transaction
    GROUP BY 
        month,
        year
    

    もちろん、ORDER BYを追加することもできます 短い名前も使用してください:

    SELECT 
        EXTRACT(MONTH FROM when) as month, 
        EXTRACT(YEAR FROM when) as year, 
        SUM(amount)
    FROM 
        transaction
    GROUP BY 
        month, 
        year
    ORDER BY 
        year DESC, 
        month DESC
    


    1. MySQL Group_Concat()とT-SQL String_Agg()

    2. 存在しない日付のゼロを返しますMYSQLGROUPBY

    3. SQLクエリpostgres9.4からネストされたjsonを作成します

    4. 1か月以内に作成されたRailsスコープ