Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mo 02.06.03 10:31 
Hi,

nehmen wir mal an ich habe in meiner Datenbank ein Feld "Leistung" (Integer).
In dem Feld stehen lauter Zahlen... wie kann ich'n jetzt am schnellsten rausbekommen, wie oft welche Zahl darin steht..??

Also wie oft ist die 10 drin, wie oft die 4 etc..
Ich könnte es zwar mit:
ausblenden Quelltext
1:
'SELECT COUNT(Leistung) FROM ... WHERE Leistung=4'					

machen, aber ich möchte gern alles in einem SELECT haben, falls das möglich ist...
So das wenn z.B. 16 verschiedene Zahlen drin sind, die ErgebnissTabelle vom SELECT etwa so aussieht:


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
[Leistung]
13
16
9
5
1
3
12
15
2
7
11
3
14
4
6
8


Also, Nr. 13 ist am Häufigsten, dann Nr. 16, dann Nr.9 etc... Halt der reihe nach absteigend (nach der Anzahl)... geht sowas mit einem SQL Befehl??

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 02.06.03 10:38 
Hallo,

ich bin mir jetzt nciht 100% sicher Aber Versuche es mal so:
ausblenden Quelltext
1:
2:
3:
SELECT Leisung, COUNT(Leistung) 
FROM Leisungstabelle
GROUP BY Leisung

Wenn ich das richtig in erinnerung habe (die DB Vorlesungen sind schon 'ne Weile her ;)) müsst durch das Group By in Verbindung mit dem Count letzteres die Größe der Gruppen zählen.

Gruß
Klabautermann
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mo 02.06.03 10:44 
huhu,

cool, danke.. klappt :)
Mir is im moment die logik dahinter nochnet ganz klar, aber.. ok *g*

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mo 02.06.03 11:17 
Hi,

mittlerweile is mir klar warum das geht (bzw was GROUP BY genau macht :) )

Nur nun hab ich nochnen problem...

Zu der Leistung 7 z.B. gehört ein Name aus einer anderen Tabelle... wenn ich nun:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
SELECT 
Namen.Name, 
Leistungen.ArztID, COUNT(Leistungen.ArztID) 
FROM 
Leistungen, Namen 
WHERE Namen.ID = Leistungen.Leistung 
GROUP BY Leistungen.Leistung


mache, kommt immer ne fehlermeldung...

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
SELECT 
Namen.Name, 
Leistungen.ArztID, COUNT(Leistungen.ArztID) 
FROM 
Leistungen, Namen 
GROUP BY Leistungen.Leistung 
HAVING Namen.ID = Leistungen.Leistung


klappt auchnet... :(

Wie mach ich das???

Au'revoir,
Aya~

PS: Das mit Leistungen und Namen is nur nen beispiel *g*

_________________
Aya
I aim for my endless dreams and I know they will come true!
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 02.06.03 12:32 
hi,

kannzt du uns vllt mitteilen wie die fehlermeldung aussieht? ;)


gr€€tz
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Mo 02.06.03 13:39 
Hi,

hab es mittlerweile einfach mit 2 Querys gemacht... :)

Au'revoir,
Aya~

PS: Fehlermeldung war irgendwas damit das das COUNT und GROUP BY nich zusammen mit mehreren Tabellen etc funktioniert :roll:

_________________
Aya
I aim for my endless dreams and I know they will come true!
thePraYeR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 27



BeitragVerfasst: Mi 11.06.03 10:04 
Kann nicht gehen.

Probier mal:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
SELECT
Namen.Name,
Leistungen.ArztID,
Count(Leistungen.ArztID) as ANZAHL
FROM
LEISTUNGEN JOIN NAMEN ON NAMEN.ID=LEISTUNGEN.LEISTUNG
GROUP BY NAMEN.NAME,LEISTUNGEN.ARZTID;

Wichtig ist, daß alle Spalten, die NICHT aggregiert werden, in der GROUP BY-Klausel angegeben werden.