Raygin
Semiprofi
Hey Leute,
ich brauche bei einer SQL-Abfrage ein bisschen Hilfe, ich komm einfach nicht drauf.
Folgenden Query habe ich bereits, der funktioniert auch:
SELECT *
FROM
(SELECT
rueckgabestation
, count(*) AS anzahl
FROM
station_1020
GROUP BY
rueckgabestation
ORDER BY
anzahl desc
) AS subq
Dieser erstellt mir eine Tabelle mit zwei Spalten, links eine Liste der Rueckgabestationen und rechts die Anzahl, wie oft diese benutzt wurden. Jetzt hätte ich gerne noch eine dritte Spalte daneben, die mir den Anteil in Prozent angibt. Also die Anzahl nochmal summiert und dann für jede Spalte (Anzahl / Summe * 100), bekomme es aber einfach nicht hin. Wenn ich in dem äußeren Query so etwas mache
SELECT *
, (sum(anzahl) / anzahl * 100) as anteil
bekomme ich a) die Fehlermeldung, dass die beiden Spalten des Subqueries gegrouped werden müssen und wenn ich das mache, bekomme ich in der Spalte anteil überall hundert raus, weil (sum(anzahl) / anzahl) stets 1 ist.
Vielleicht gibt es hier einen findigen SQL-Versteher, der einen Anstoß geben kann? Mein SQL ist leider so ein bisschen eingerostet :-(
Viele Grüße
Raygin
ich brauche bei einer SQL-Abfrage ein bisschen Hilfe, ich komm einfach nicht drauf.
Folgenden Query habe ich bereits, der funktioniert auch:
SELECT *
FROM
(SELECT
rueckgabestation
, count(*) AS anzahl
FROM
station_1020
GROUP BY
rueckgabestation
ORDER BY
anzahl desc
) AS subq
Dieser erstellt mir eine Tabelle mit zwei Spalten, links eine Liste der Rueckgabestationen und rechts die Anzahl, wie oft diese benutzt wurden. Jetzt hätte ich gerne noch eine dritte Spalte daneben, die mir den Anteil in Prozent angibt. Also die Anzahl nochmal summiert und dann für jede Spalte (Anzahl / Summe * 100), bekomme es aber einfach nicht hin. Wenn ich in dem äußeren Query so etwas mache
SELECT *
, (sum(anzahl) / anzahl * 100) as anteil
bekomme ich a) die Fehlermeldung, dass die beiden Spalten des Subqueries gegrouped werden müssen und wenn ich das mache, bekomme ich in der Spalte anteil überall hundert raus, weil (sum(anzahl) / anzahl) stets 1 ist.
Vielleicht gibt es hier einen findigen SQL-Versteher, der einen Anstoß geben kann? Mein SQL ist leider so ein bisschen eingerostet :-(
Viele Grüße
Raygin