Informationsverarbeitung 2
Dienstag, 27. November 2007
4. Aufgabe: Thematik Distinct vs. Group by
Zurückführend auf die letzte LVA Einheit, werde ich versuchen einige bereits durchgeführte Abfragen mit der sogenannten Select Spezifikation Distinct durchzuführen.

Nach Hermann Sauer (1998) unterdrückt DISTINCT doppelte Zeilen im Ergebnis. Das heisst, dass identische Zeilen in der Ergebnistabelle zusammengefasst werden. Wenn beispielsweise zwei Zeilen in allen Spalten denselben Wert haben werden sie zu einer zusammengefasst. Um für mich die Auswirkung des Befehles Distinct sichtbar zu machen, habe ich mit einfachen Abfragen begonnen.

Ich wollte alle Bücherautoren ermitteln:

1. Einfache Abfrage ohne distinct und group by

Willkommen bei Adobe GoLive 6

Autoren



Das Ergebnis zeigt alle Autoren jener Bücher, welche in unserem Buchhandel geführt werden. Wie aus der Tabelle ersichtlich ist, werden auch gleichnamige Autoren mehrmals angeführt.

2. Gleiche Abfrage mit Group by
Willkommen bei Adobe GoLive 6

Autoren



Fügt man der Abfrage ein Group by hinzu, so werden Autoren mit gleichen Namen zusammengefasst. Sowie wird das Ergebnis in absteigender Reihenfolge ausgeworfen.

3. Gleiche Abfrage ohne group by mit Distinct

Willkommen bei Adobe GoLive 6

Autoren



Wie die Tabelle zeigt, werden ebenso durch die DISTINCT Formel gleichnamige Autoren zusammengefasst. Jedoch um eine absteigende Sortierung zu erhalten muss die Abfrage durch ein "Order by 1" ergänzt werden.


Überprüfung der 2. Aufgabe mit Distinct

Willkommen bei Adobe GoLive 6

Umsatz nach Regionen



Wird der Abfrage durch DISTINCT ergänzt so erhält man ein abweichendes Ergebnis:

Willkommen bei Adobe GoLive 6

Umsatz nach Regionen



Eine mögliche Begründung warum dies der Fall ist, liegt in einer genaueren Ausführung von Hermann Sauer. Die Funktionen COUNT(spaltenname), SUM(spaltenname), AVG(spaltenname), MAX(spaltenname) und MIN(spaltenname) werten nur die unterschiedlichen Werte der Spalte aus, wenn das Wort DISTINCT folgt. Wenn DISTINCT angegeben wurde, darf das Argument nur ein Spaltenname sein wie z.b. SUM (Distinct Umsatz).

COUNT (*) bezieht sich nicht auf eine spezielle Spalte und darf nicht in Verbindung mit der Funktionserweiterung DISTINCT verwendet werden. SELECT COUNT (DISTINCT *) ist nicht erlaubt, aber SELECT DISTINCT COUNT (*) ist ein erlaubt.

Folglich werden die hier angeführten Argumentationen mittels unserer Datenbank überprüft.

Willkommen bei Adobe GoLive 6

Tabelle Buch



Diese Abfrage wirft sämtliche Inhalte der Tabelle Buch aus. Um dieses Ergebnis so sortieren, kann beispielsweise die Funktion DISTINCT verwendet werden.

Willkommen bei Adobe GoLive 6

Tabelle Buch



Wird die Abfrage mit Distinct durgeführt so werden jene Zeilen zusammengefasst, welche in allen Spalten den gleichen Inhalt aufweisen.

Abfrage mit Group by

Willkommen bei Adobe GoLive 6

Tabelle Buch



Wird die Abfrage durch ein Group by Buch.Autor ergänzt, so werden im Abfrageergebnis alle gleichnamigen Autoren zusammengefasst egal was in den nachfolgenden Spalten aufscheint. Hier liegt wohlmöglich der Unterschied zwischen Distinct und Group by. Distinct fasst nur jene Zeilen zusammen in der alle Inhalte gleich sind. Bei der Group by Funktion werden die angeforderten Spalteninhalte (bsp.: Group by Buch.Autor) zusammengefügt. Dies kann auch in H. Sauer (1998) nachgelesen werden.

Group by Funktion: die angegenben Spaltenliste wird als Gruppierungskriterium benutzt. Alle Zeilen der Tabelle, die in diesen Spalten denselben Wert haben, werden zu einer Gruppe zusammengefasst.

Quelle:
Hermann Sauer (1998): Relationale Datenbanken

... comment

 
patrick.fuehrer.Uni-Linz, Sonntag, 2. Dezember 2007, 08:58
gutes Tutoriual zu Distinct vs. Group by

... link  


... comment

Online for 6257 days
Last update: 2008.02.07, 14:40
status
You're not logged in ... login
menu
... home
... topics
... galleries

... ::collabor:: home
search
 
calendar
November 2007
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 2 
 4 
 6 
 7 
 8 
 9 
11
12
13
14
15
16
17
18
19
20
22
23
24
25
26
28
29
30
 
 
 
recent updates
UML
Einführung in UML Allgemein UML beschreibt Softwaresysteme Zeigt...
by Claudia Holzinger.Uni-Linz (2008.02.07, 14:38)
Aufgabe 6: Geschäftsmodell
Folglich wird die Grundstruktur meines Geschäftsmodell...
by Claudia Holzinger.Uni-Linz (2008.02.07, 14:26)
Kundenabfrage durch Datumeingabe
by Claudia Holzinger.Uni-Linz (2008.01.30, 19:20)
Klausur
klausur (xls, 52 KB)
by Claudia Holzinger.Uni-Linz (2008.01.30, 18:27)
Kundenermittlung über...
Willkommen bei Adobe GoLive 6...
by Claudia Holzinger.Uni-Linz (2008.01.29, 22:15)

xml version of this page

made with antville