SQL Abfrage

Ich habe es Probiert kann aber mit Fehlermeldungen wie:
"FUNCTION db_9_289df4.COUNT does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual"
nichts anfangen und möchte auch eigentlich gar nicht so tief in die Materie. Daher hätte ich mich sehr gefreut nach so vielen Ansätzen zu erfahren wie es richtig aussieht da ich es so definitiv besser gelernt hätte wie mich stundenlang an falschen dingen auszuprobieren. Schade hatte echt Hoffnungen hier.
 
Werbung:
Code:
postgres=# create table patient(pid int generated always as identity primary key, name text not null);
CREATE TABLE
postgres=# create table behandlung(bid int generated always as identity primary key, patient int references patient, datum date);
CREATE TABLE
postgres=# insert into patient (name) values ('Meier');
INSERT 0 1
postgres=# insert into patient (name) values ('Müller');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (1, '2021-08-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (1, '2022-04-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (2, '2022-03-01');
INSERT 0 1
postgres=# insert into behandlung (patient, datum) values (2, '2022-05-01');
INSERT 0 1
postgres=# select name, count(*) from patient p left join behandlung b on p.pid=b.patient where b.datum between '2022-01-01' and '2023-01-01' group by name;
  name   | count 
---------+-------
 Meier   |     1
 Müller |     2
(2 rows)

postgres=#

geht es Dir nun besser?
 
Werbung:
count() und sum() sind Aggregate. Um eine Tabelle zu aggregieren muss jede Spalte, die im Select vorkommt, entweder aggregiert oder gruppiert werden. - Ganz simpler Grundsatz, immer zu befolgen.

1a) ist also:
GROUP BY Nachname, Vorname

2b) ist also:
GROUP BY K_ID, Firma, Bezeichnung

Ein Semikolon steht immer am Ende eines Querys, also hinter dem GROUP BY. Das sind alles so Dinge die dir SQL sofort ankreidet und das halt ziemlich exakt. Solche simplen Fehler wirst du nur machen wenn du SQL total theoretisch behandelst und nicht mal die Syntax-Prüfung bemühst. Kann man machen - wird halt scheiße...
 
Zurück
Oben