2012-04-10 8 views

Antwort

16

Dies ist ein wirklich rudimentär SUM() Aggregat. Ich empfehle Ihnen, die Dokumentation Ihres RDBMS zu den Aggregatfunktionen und GROUP BY zu lesen, da dies ziemlich elementar ist.

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

Beachten Sie, dass einige RDBMS (MySQL, zum Beispiel) ermöglicht es Ihnen, eine Spalte alias im ORDER BY wie in verwenden:

ORDER BY sumtax DESC 

... wo andere (wie SQL Server, wenn ich mich recht erinnere korrekt) wird nicht und Sie müssen den Gesamtwert auch dort verwenden.

Edit:ich gerade überprüft und tatsächlich SQL Server scheint Aliase in den ORDER BY zu ermöglichen. Ziemlich sicher, dass Sie nicht ein Alias ​​in den GROUP BY verwenden können, obwohl ...

+0

wie kann ich die 'ID' bekommen? danke – dadan

+0

@dadan Die ID ist nicht für jedes 'SUM()' Aggregat eindeutig, weil mehrere Status ID Werte in jedem 'SUM()' dargestellt werden. (zum Beispiel 'TX' sum hat ids 0, 1) Sie sollten eine Frage stellen, die genau zeigt, was Sie brauchen. –

+0

danke für die antwort, ich habe lösung für mein problem gefunden, mit 'over partition by' auf oracle – dadan

Verwandte Themen