sql >> Database >  >> RDS >> Mysql

Hoe kan ik groeperen op maand en jaar als ik alleen een datetime-veld heb?

Je moet groeperen op uittreksels.

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

En als je die kolommen nodig hebt, dan

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

Natuurlijk kun je ORDER BY . toevoegen en gebruik ook korte 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


  1. Waar worden de verbindingspogingen van SQL Server vastgelegd?

  2. Wat is de standaardnaam van de beperking in Oracle?

  3. Ongeldige CREATE-opdracht wanneer deze wordt gebruikt met een andere opdracht

  4. Rails Unit Testen met MyISAM Tables