| pat-b |
Geschrieben am: Mi 8.11.2006, 19:06
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 63 Mitglied seit: 12.11.2005 |
Hallo
Ich habe eine Tabelle mit der Spalte "titel", welche mehrere gleiche Einträge hat. Nun möchte ich nach dieser gruppieren und nach der Anzahl gleicher Einträge sortieren. Beispiel der Spalte:
Patrick |
![]() |
| Sascha Ahlers |
#2 Geschrieben am: Mi 8.11.2006, 19:18 (+00:12)
|
||||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1701 Mitglied seit: 27.12.2004 |
"group by" lautet der Filter zum gruppieren.
Und um die Anzahl noch anzuzeigen müsste die Abfrage so lauten:
MfG Sascha Ahlers -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||||
![]() |
| pat-b |
#3 Geschrieben am: Mi 8.11.2006, 19:25 (+00:06)
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 63 Mitglied seit: 12.11.2005 |
Super, vielen Dank!
Gruss Patrick |
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#4 Geschrieben am: Mi 8.11.2006, 19:35 (+00:10)
|
||||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2440 Mitglied seit: 4.02.2006 |
Mach das mal und stell dann die Fehlermeldung rein. Dann kann ich das endlich mal in meinem Abschnitt über Group By ergänzen. Bei Access würde eine Fehlermeldung kommen: "Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'id' nicht als Teil der Aggregatfunktion einschließt". Sprich: Die Spalte id muß hier komplett raus. Wird über sie gruppiert, wäre das unsinnig, da das wohl der Primärschlüssel ist, also werden alle Zeilen zurückgegeben, Group By bleibt wirkungslos. Abgesehen davon sind die Tabellen wohl nicht normalisiert - die 'Titel' sollte vom Typ Integer sein und eine Verknüpfung auf eine Randtabelle mit den eigentlichen Texten enthalten. -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
||||
![]() |
| Sascha Ahlers |
#5 Geschrieben am: Mi 8.11.2006, 19:50 (+00:14)
|
||||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1701 Mitglied seit: 27.12.2004 |
Klappt doch. Gut man bekommt nur immer die ID des ersten gefundenen Eintrages und daraus können sich Logikfehler erschließen, aber im Prinzip funktioniert es. Von einer Fehlermeldung keine Spur. -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||||
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#6 Geschrieben am: Mi 8.11.2006, 20:02 (+00:12)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2440 Mitglied seit: 4.02.2006 |
Oh! Das ist aber eine - negative - Überraschung. Sowohl Access als auch der MS-SqlServer reagieren in so einem Fall sofort mit einer blockierenden Fehlermeldung, der Code wird bei der Analyse abgelehnt. Und ich vermute, daß das auch dem SQL-92-Standard entspricht. Bei Group By muß jede Ausgabespalte entweder im Group-By-Abschnitt drin sein oder sie muß als Argument einer Aggregatfunktion weiterverarbeitet werden. Da das bei der obigen Spalte nicht der Fall ist, würde der Code so nicht funktionieren. Und da der Wert dieser Spalte wohl nicht deterministisch ist, wäre so etwas auch keine gute Lösung. @Irene: Was meint Oracle da? -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - Ihre Datenbank funktioniert. |
||
![]() |
| Irene irene.ch |
#7 Geschrieben am: Do 9.11.2006, 05:46 (+09:43)
|
||||
![]() AyomRank 7 Gruppe: Experten Entwicklung (Mod) Beiträge: 1114 Mitglied seit: 3.05.2004 |
Oracle meint: ORA-00979: not a GROUP BY expression. (SQL war select empno, ename, count(deptno) from emp group by deptno wobei EMP eine Tabelle von Mitarbeitern ist und DEPTNO die ID der Abteilung). Also genau das Verhalten, was auch Access und SQL Server zeigen. By MySQL können ja verschiedene Datenbank-Arten verwendet werden, soweit ich weiss. Eventuell handhaben das nicht alle diese Datenbank-Arten gleich? Im übrigen müsste man, um solche SQL-Fragen richtig zu beantworten, die komplette Struktur der betreffenden Tabelle(n) inklusive der Primär- und Fremdschlüsselfelder kennen. Wer nur Feldnamen sieht, macht sich im Kopf ein Bild dieser Tabelle, so wie er diese Felder interpretiert, und das ist meistens nicht ganz richtig. Genauso "nicht ganz richtig" ist dann das SQL, was daraus resultiert ;-) Im Falle von pat-b würde ich das SQL so formulieren:
Griessli Irene -------------------- |
||||
![]() |
| Sascha Ahlers |
#8 Geschrieben am: Do 9.11.2006, 15:28 (+09:42)
|
||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1701 Mitglied seit: 27.12.2004 |
Kann sein, ich habe das auf eine MyISAM Tabelle angewandt, bei InnoDB könnte das ggf. anders aussehen. PS: Man sollte jedoch vermeiden ein COUNT() auf eine InnoDB Tabelle anzuwenden... Bearbeitet von Sascha Ahlers am Do 9.11.2006, 19:55 -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
« Suche Script für Mediengallerie | Programmierung Allgemein | document.all.Text.style.fontSize ? Dynamisch ! »
Trackback-Url: http://www.ayom.com/track/t/14944
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Lost connection to MySQL | cr4m0 | 128 | 4 | So 23.11.2008, 14:31 |
| MySQL Frage | G.P. | 105 | 2 | Mo 17.11.2008, 15:59 |
| Suche Freelancer: Ajax, XML, PHP, MySQL | omc | 321 | 3 | Mi 12.11.2008, 18:22 |
| Einbinden vonn RSS feeds in Typo3 / MYSQL | e-card | 10981 | 5 | Di 4.11.2008, 18:36 |
| MySql Frage - ID Ändern | EuD | 122 | 2 | Di 4.11.2008, 11:09 |
| mysql query vereinfachen | Big Rob | 164 | 5 | Mo 3.11.2008, 22:40 |
| mysql Dump Städte | pl_90 | 164 | 2 | So 26.10.2008, 01:13 |
| MySQL Befehl | G.P. | 174 | 5 | Fr 24.10.2008, 15:58 |
| [S] unique Textcontent (Synonym-Suche) nach eigene | Martin.NewAd | 97 | 0 | Do 23.10.2008, 07:43 |
| Paypal Weiterleitung nach Kauf | A-Markets | 228 | 6 | Fr 17.10.2008, 02:03 |
Anzeige - [Hier werben / Mediadaten]

















