SQL Statement
Marcus
- datenbank
Hallo !
Ich habe mein Problem schon mal vor paar Tagen gepostet, jedoch habe ich mich wohl falsch ausgedrückt.
ID SP1 SP2 SP3 SP4 SP5 SP6
--------------------------------------------------
1 1 2 2 6 3 4
2 3 3 3 1 3 3
3 2 3 2 4 1 3
4 3 5 2 4 2 6
5 3 6 1 2 1 3
So sieht etwa meine Datenbank aus. Nun möchte ich gerne wissen wie oft in SP1 die Zahl 1 vorkommt, das gleich für die Zahl 2,3,4,5,etc.
Und das gleich Spiel für die anderen Spalten.
Hat jemand ein Idee wie das SQL Statement aussehen müsste ? Ich habs mit Count probiert, leider bekomme ich dann immer nur ein Wert zurückgeliefert.
Über jeden Tip wäre ich sehr dankbar
Gruss
Marcus
Hi Marcus
So sieht etwa meine Datenbank aus. Nun möchte ich gerne wissen wie oft in SP1 die Zahl 1 vorkommt, das gleich für die Zahl 2,3,4,5,etc.
Und das gleich Spiel für die anderen Spalten.
Hat jemand ein Idee wie das SQL Statement aussehen müsste ? Ich habs mit Count probiert, leider bekomme ich dann immer nur ein Wert zurückgeliefert.
select spaltenname, count(*)
from tabelle
group by spaltenname
spaltenname steht zb für sp1, sp2...
Das müsste dir zurückgeben wie häufig jeweils ein Wert in der
Spalte vor kommt. Pro Spalte müsstest du das aber einzeln
machen. Kann es aber hier nicht testen, deswegen ungetestet.
Gruss Daniela
Hallo,
ID SP1 SP2 SP3 SP4 SP5 SP6
1 1 2 2 6 3 4
2 3 3 3 1 3 3
3 2 3 2 4 1 3
4 3 5 2 4 2 6
5 3 6 1 2 1 3
So sieht etwa meine Datenbank aus. Nun möchte ich gerne wissen wie oft in SP1 die Zahl 1 vorkommt, das gleich für die Zahl 2,3,4,5,etc.
Und das gleich Spiel für die anderen Spalten.
Wie oft jede Zahl in SP1 sstehet ist recht einfach:
select SP1,count(*) from TABELLE group by SP1
Eine Abfrage zu basteln, welche das gleichzeitig auch für die anderen Spalten macht ist AFAIK mit dieser Datenstruktur nicht möglich. In einigen Datenbanken könntest Du eine Stored-Procedure einsetzen, welche alle 6 Spalten hintereinander zählt, um dann die gesammelten Ergebnisse zurückzuliefern.
Soweit ich mihc mit Datenbanken auskenne, sind Tabellen, in denen durchnummerierbare Spalten verwendet werden (SP1-SP6) nicht gerade gutes Design. Wenn Du beispielsweise die Tabelle so aufgebaut hättest
ID KATEGORIE WERT
----------------------
1 1 1
1 2 2
1 3 2
1 4 6
1 5 3
1 6 4
...
5 6 3
(Wobei ID und KATEGORIE zusmamen den Primärschlüssel bilden)
Dann würde die Abfrage so aussehen
select KATEGORIE,WERT,count(*) from TABELLE group by KATEGORIE,WERT
Grüße
Klaus