Ich möchte Ergebnisse von zwei Tabellen nach gleichen Regeln gruppiert zusammen in einer Auswahl erhalten.Join Ergebnisse von zwei SQL-Tabellen
Ich habe Tabelle 1
create table person AS
id INTEGER,
gender INTEGER,
state VARCHAR2
name VARCHAR2
surname VARCHAR2
Tabelle 2
create table sampletest as
person_id FOREIGN KEY To person.id
result INTEGER
Tabelle 3
create table examtest as
person_id FOREIGN KEY to person.id
examresult INTEGER
Ich möchte diese Ausgabe durch staatliche
Gruppe erhalten | Gruppe nach Geschlecht | zählen (Prüfungsergebnis> 0) | count (Ergebnis> 0 und führen < 4)
ich so etwas wie dieses
select state,gender,count(e.examresult),count(s.result) where
p.id=s.person_id and p.id=e.person_id and
s.result>0 and s.result<4 and
e.examresult>0 group by state,gender
versucht, aber ich Ergebnisse, die voneinander abhängig sind. Wie bekomme ich unabhängige Ergebnisse in eine Auswahl?
könnten Sie ein bisschen mehr helfen, ich zählen brauchen 0 für Staaten, Geschlechter, die von 0,1,2,3,4 gruppiert haben e.examresult Dont , 5 – damir
Korrelierte Unterabfragen sind aus Performanceperspektive eine schlechte Lösung. Dies sollte niemals Ihre erste Wahl sein. – HLGEM
Ich schreibe Abfragen wie diese, manchmal Hunderte von Zeilen lang, und sie übertreffen in der Regel andere Lösungen. Dies hängt wahrscheinlich von der verwendeten Datenbank ab. Bei Verwendung von Oracle gilt als Faustregel: Je schlechter die Abfrage aussieht, desto besser ist sie in der Regel. Aber die linke Verbindung in der anderen Antwort wird wahrscheinlich gut und vielleicht sogar besser funktionieren. – GolezTrol