To jest naprawdę prymitywny agregat SUM()
. Zalecam przeczytanie dokumentacji RDBMS na temat funkcji agregujących i GROUP BY
, ponieważ jest to dość elementarne.
SELECT
SUM(Tax) AS sumtax,
State
FROM table
GROUP BY State
/* Looks like you want descending order */
ORDER BY SUM(Tax) DESC
pamiętać, że niektóre RDBMS (MySQL, na przykład) będzie można użyć aliasu kolumny w ORDER BY
jak w:
ORDER BY sumtax DESC
... gdzie inni (jak SQL Server Jeśli dobrze pamiętam poprawnie) nie będzie i musisz również użyć wartości zagregowanej.
Edytuj:Właśnie sprawdziłem i faktycznie SQL Server wydaje się zezwalać na aliasy w ORDER BY
. Na pewno nie można użyć aliasu w GROUP BY
...
Jak mogę uzyskać "ID"? dzięki – dadan
@dadan Identyfikator nie jest unikalny dla każdego agregatu 'SUM()', ponieważ wiele wartości identyfikatora stanu jest reprezentowanych w każdym 'SUM()'. (na przykład suma "TX" ma wartość 0, 1) Powinieneś zadać pytanie, demonstrujące dokładnie to, czego potrzebujesz. –
dziękuję za odpowiedź, znalazłem rozwiązanie dla mojego problemu, używając 'over partition by' na oracle – dadan