2012-04-10 13 views

risposta

16

Questo è un aggregato SUM() veramente rudimentale. Raccomando di leggere la documentazione del tuo RDBMS su funzioni aggregate e GROUP BY perché è piuttosto elementare.

SELECT 
    SUM(Tax) AS sumtax, 
    State 
FROM table 
GROUP BY State 
/* Looks like you want descending order */ 
ORDER BY SUM(Tax) DESC 

Nota che alcuni RDBMS (MySQL, per esempio) vi permetterà di utilizzare un alias di colonna nella ORDER BY come in:

ORDER BY sumtax DESC 

... dove gli altri (come SQL Server se ricordo correttamente) non lo sarà e sarà necessario utilizzare anche il valore aggregato.

Edit:Ho appena controllato e in realtà SQL Server sembra consentire alias nella ORDER BY. Abbastanza sicuro di non poter usare un alias nello GROUP BY sebbene ...

+0

come posso ottenere l'ID? grazie – dadan

+0

@dadan L'ID non è univoco per ogni aggregato 'SUM()' perché più valori di ID di stato sono rappresentati in ciascun 'SUM()'. (ad esempio, la somma 'TX' ha ID 0, 1) Dovresti pubblicare una domanda che dimostri esattamente ciò di cui hai bisogno. –

+0

grazie per aver risposto, ho trovato la soluzione per il mio problema, usando 'over partition by' su oracle – dadan

Problemi correlati