2010-10-06 5 views
8

J'ai le tableau suivant:Sélectionner par mois

purchases(id, item, user, price, time); 

Le champ time est un timestamp.

J'ai besoin d'une requête qui retournerait une ligne par mois et cette ligne contiendrait la somme de price pour chaque élément de ce mois.

Répondre

9

Essayez ceci:

SELECT MONTH(`time`) AS month, SUM(price) AS price 
FROM your_table 
GROUP BY MONTH(`time`) 

Si vous avez plus d'un an de données que vous pouvez également inclure l'année dans votre groupe par:

SELECT YEAR(`time`) AS year, MONTH(`time`) AS month, SUM(price) AS price 
FROM your_table 
GROUP BY YEAR(`time`), MONTH(`time`) 
2

Qu'en est-GROUP BY YEAR(DATE(time)) ASC, MONTH(DATE(time)) ASC?