2010-05-24 12 views
9

Ho un database SQLite che contiene transazioni, ognuna delle quali ha un prezzo e un.Raggruppa in base al mese in SQLite

Desidero recuperare la somma delle transazioni raggruppate per mese. I record recuperati dovrebbe essere simile al seguente:

Price month 
230  2 
500  3 
400  4 
+0

Quali sono le colonne della tabella? – Mark

risposta

20

è sempre bene, mentre si esegue il raggruppamento per mese si dovrebbe verificare anche ANNO

select SUM(transaction) as Price, 
     DATE_FORMAT(transDate, "%m-%Y") as 'month-year' 
     from transaction group by DATE_FORMAT(transDate, "%m-%Y"); 

per SQLite

select SUM(transaction) as Price, 
     strftime("%m-%Y", transDate) as 'month-year' 
     from transaction group by strftime("%m-%Y", transDate); 
+0

+1 per la parte relativa all'anno, non l'ho specificato nella mia soluzione. – newtover

+0

"no such function: date_format" – Andomar

+0

Se stai usando Android probabilmente questo sarà utile strftime ('% m-% Y', transDate, 'unixepoch') – dwbrito

1

è possibile raggruppare in l'inizio del mese:

select date(DateColumn, 'start of month') 
,  sum(TransactionValueColumn) 
from YourTable 
group by 
     date(DateColumn, 'start of month') 
1

Provare quanto segue:

SELECT SUM(price), strftime('%m', transDate) as month 
FROM your_table 
GROUP BY strftime('%m', transDate); 

Utilizzare il corresponding page nella documentazione SQLite per riferimenti futuri.

2
SELECT 
    SUM(Price) as Price, strftime('%m', myDateCol) as Month 
FROM 
    myTable 
GROUP BY 
    strftime('%m', myDateCol) 
+0

Works, ma potenzialmente somma il valore di marzo 2009 a marzo 2010 per il mese 3 – Andomar