AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [SQL] Group by. Kleine Erklärung

[SQL] Group by. Kleine Erklärung

Ein Thema von Die Muhkuh · begonnen am 2. Jan 2005 · letzter Beitrag vom 2. Jan 2005
Antwort Antwort
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

[SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 11:19
Hi,

ich mach grad mit PHP was mit Datenbanken. Da hatte ich folgenden SQL-Befehl:

SELECT vote_result, vote_option_text, SUM(vote_result) AS gesamt FROM " . $prefix . "vote_results WHERE vote_id = $id Der ging nicht. Erst als ich:
SELECT vote_result, vote_option_text, SUM(vote_result) AS gesamt FROM " . $prefix . "vote_results WHERE vote_id = $id GROUP BY vote_result geschrieben hatte ging das.

Jetzt wollte ich mal fragen:

Für was brauch ich dieses Group By? Welchen Zweck erfüllt es?



MrSpock hats mir zwar schonmal ne kleine Erklärung gegeben doch so ganz verstanden hab ich sie nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: [SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 11:28
Sobald du Aggregatfunktion (Sum, count, max, min, avg etc.) in deinen SQ Abfrage einschließt, und zusätzlich noch einige andere Spalten in deinem Resultset hast, brauchst du das Group by...

Bsp: Eine Tabelle Kontakte mit den Spaltem ID, Name, Vorname, Geschlecht
Wobei Geschlecht aus ['W','M']

select count(ID) from Kontakte liefert dir, über alle Datensätze deiner Tabelle, die Anzahl der Records. Als Ergebnis kriegst du einen einzigen Record zurück.

Wenn du jetzt jedoch nicht nur an der Anzahl der Kontakte insgesamt interessiert bist, sondern aufgespaltet nach Geschlecht, musst du gruppieren. Du willst dann als Resultat 2 Datensätz, einer mit der Anzahl deiner Weibchen, und einen mit der Anzahl deiner Männchen... Und das geht so:

select Geschlecht, count(ID) from Kontakte group by Geschlecht Mit sum, min, max, avg etc. ist es genauso.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 11:38
Hi Tom,

thx. Und was wäre wenn ich jetzt schreibe:

select Geschlecht, count(ID) from Kontakte group by ID Ginge das auch?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: [SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 11:42
Was willst du denn damit erreichen? Wenn du Zusatzspalten in dein Ergebnis einfügst, musst du immer nach diesen gruppieren. Und da du die Spalte ID nicht einfügst, fehlt das Gruppieren hier auch fehl.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: [SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 11:47
Hi,

ok is klar.


Aber warum hast du dann hier nicht gemeckert:

$sql = "SELECT vote_result, vote_option_text, SUM(vote_result) AS gesamt FROM " . $prefix . "vote_results WHERE vote_id = $id GROUP BY vote_result"; Ich gruppiere hier auch nach der SUM()
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: [SQL] Group by. Kleine Erklärung

  Alt 2. Jan 2005, 12:16
mit
... group by vote_result, vote_option_text funktioniert auch das.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz