Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - GROUP BY und ORDER BY Klausel in SQL
Kossy - Di 16.10.12 17:52
Titel: GROUP BY und ORDER BY Klausel in SQL
Hallo zusammen !
Ist es eigentlich möglich, in einem SQL SELECT Befehl ein Group By und gleichzeitig auch eine Order By Klausel zu definieren? Uncd wenn ja, funktioniert es dann auch, ein- und dieselbe Tabellenspalte in der Group By und Order By Klausel aufzuführen?
Viele Grüße
Kossy
Ralf Jansen - Di 16.10.12 22:42
Das hast du schneller nachgeguckt und fast noch schneller ausprobiert als gefragt. Insofern spar ich mir ne echte Antwort.
Kossy - Mi 17.10.12 07:26
Hallo !
Ja also ich habe es nciht hinbekommen, aber die Frage ist, ob es generell überhaupt möglich ist und ich weiß leider nciht, wo genau ich dort dafür nachschauen soll?
jfheins - Mi 17.10.12 08:03
Ja, geht. Ich habe es gerade ausprobiert mit MySQL funktioniert's.
Zuerst verplant und "sort by" geschrieben, dann zwar "order by" aber die falsche Reihenfolge. Nach dem 5. Versuch ging es dann:
SQL-Anweisung
1: 2: 3:
| SELECT * FROM `tbl_category` group by `cat_parent_id` order by `cat_parent_id` desc |
Ralf Jansen - Mi 17.10.12 09:48
Zitat: |
wo genau ich dort dafür nachschauen soll? |
In der Doku? Zuerst wäre wohl mal die Hilfe zum
Select [
http://msdn.microsoft.com/de-de/library/ms189499.aspx] der Einstieg wenn man ein Problem mit dem Syntax eines Select hat.
Unter dem Punkt Syntax siehst du dann
Zitat: |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| <SELECT statement> ::= [WITH <common_table_expression> [,...n]] <query_expression> [ ORDER BY { order_by_expression | column_position [ ASC | DESC ] } [ ,...n ] ] [ <FOR Clause>] [ OPTION ( <query_hint> [ ,...n ] ) ] <query_expression> ::= { <query_specification> | ( <query_expression> ) } [ { UNION [ ALL ] | EXCEPT | INTERSECT } <query_specification> | ( <query_expression> ) [...n ] ] <query_specification> ::= SELECT [ ALL | DISTINCT ] [TOP ( expression ) [PERCENT] [ WITH TIES ] ] < select_list > [ INTO new_table ] [ FROM { <table_source> } [ ,...n ] ] [ WHERE <search_condition> ] [ <GROUP BY> ] [ HAVING < search_condition > ] | |
Aha. Da sollte man rauslesen das beides möglich ist und man muss erst gruppieren und dann sortieren. Wenn du das aus dem Syntax nicht so genau lesen kannst (was verzeichlich ist) kommt aber dann zumindest im folgenden nochmal die 'Logical Processing Order of the SELECT statement' wo das im Klartext aufgezeigt wird. Wie man gruppiert und wie man sortiert wusstest du vermutlich vorher und aus der Hilfe sollte man Ruckzuck erlesen können das man das einfach kombinieren kann und in welcher Reihenfolge das dann anzugeben ist (und vom System angewendet wird; anders herum würde es scharf nachgedacht auch keinen Sinn machen).
jaenicke - Mi 17.10.12 11:33
Kossy hat folgendes geschrieben : |
Ja also ich habe es nciht hinbekommen |
Dann schreib doch besser deine SQL-Formel gleich dazu, dann hättest du vermutlich schon längst die Antwort, warum die nicht funktioniert. :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!