Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie gruppiere ich nach Monat und Jahr, wenn ich nur ein datetime-Feld habe?

Sie müssen nach Extrakten gruppieren.

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

Und wenn Sie diese Spalten brauchen, dann

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

Natürlich können Sie ORDER BY anhängen und verwenden Sie auch kurze Namen:

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