SQL Abfrage in anderer Abfrage aber in select?

Hallihallo,
ich muss in der Schule in Informatik als Projekt eine Datenbank über Versicherungen machen.
Jetzt wollte ich ausrechnen, wieviel Prozent der Kunden jeweils bei den verschiedenen Unternehmen sind.
So sieht die Abfrage bis jetzt aus:

SELECT “UnternehmensNr”, “unternehmen”.“Name”, COUNT( “KundenNr” ) “Anzahl der Kunden” , count(KundenNr)/50/*100 FROM “kunde”, “unternehmen” WHERE “kunde”.“UnternehmensNr” = “unternehmen”.“UnternehmensNr” GROUP BY “UnternehmensNr”, “unternehmen”.“Name”

Ich weiß, dass die Tabelle “kunde” derzeit 50 Einträge hat. Jedoch wollte ich die Abfrage so ändern, dass sie immer mit der aktuellen Anzahl an Datensätzen funktioniert. Eine Abfrage, die mir die Spaltenanzahl von "kunde"ausgibt, sähe ja einfach so aus:

select count(*) from kunde

Aber wie kann ich das Ergebnis jetzt in den select-Teil der Abfrage einbinden? Unterabfragen habe ich bisher nur bei where kennengelernt und sie scheinen auch nur dort zu funktionieren.
Ich bin ziemlicher Anfänger und bitte um eure Hilfe und eine am Besten möglichst einfache Lösung :slight_smile:
LG und danke im vorraus

Das ist bei Deiner Problemstellung kein Problem, die Unterabfrage direkt in die Abfrage einzubauen. Das liegt daran, dass die Unterabfrage genau nur einen Datensatz ausgibt.

SELECT "UnternehmensNr", "unternehmen"."Name", COUNT( "KundenNr" ) "Anzahl der Kunden" , COUNT("KundenNr")*100/(SELECT COUNT("ID") FROM "kunde") "Prozent" FROM "kunde", "unternehmen" WHERE "kunde"."UnternehmensNr" = "unternehmen"."UnternehmensNr" GROUP BY "UnternehmensNr", "unternehmen"."Name"

… wobei ich jetzt einfach “ID” in den Count-Befehl gegeben habe, in der Annahme, dass so Dein Primärschlüsselfeld in der Tabelle heißt. Dieses Feld ist auf jeden Fall in jedem Datensatz mit Inhalt gefüllt, nie NULL.

Gruß

Robert

Hab’s noch nicht ausprobiert, aber Vielen Dank!! :slight_smile: