Wie kann ich in SQL zwei Counts miteinander vergleichen?

1 Antwort

Lake und mountain sind Tabellen der Form LandID und LakeID/MountainID korrekt?

Soll's schön sein oder funktionieren?

Als erstes Lake nach country gruppieren mit Count. Die ID jedes Landes steht ja mehrmals drinnen.

Dann haste ne Tabelle der form: landID Anzahl seen.

Dann nächste das gleiche mit mountain.

Dann beide mit nem Join verbinden. A.landID = b.landID

Dann haste ne Tabelle der Form:

LandID Anzahl Berge Anzahl seen.

Dann darauf nen select mit dem Vergleich in. Der where Klausel.

Geht mit Sicherheit eleganter und warscheinlich performanter. Aber das dürfte funktionieren.

AverageGuy797 
Fragesteller
 02.12.2019, 17:40

Meinst du so? (Hier jetzt ohne die größer Abfrage)

SELECT  a.country, COUNT(a.country), COUNT(b.country)
FROM GEO_LAKE A, GEO_MOUNTAIN B
WHERE a.country = b.country
GROUP BY a.country

Das Problem hierbei ist, dass die beiden COUNTS auf diese Weise identisch werden.

0
FouLou  02.12.2019, 17:51
@AverageGuy797

Diese SQL nur mit Geo Lake.

Dann die gleiche mit Geo mountain.

Und dann select * Form ( (sql1) outer Join (sql2) on a.country = b.country)

Dann müsstest du das ganze mit den korrekten Werten haben.

Wie es genau im SQL aussieht müsste dir dann zusammen fieseln. Da müsste ich auch n bissel rumprobieren.

Kurz: erst beide guppieren mit Count (seperat)

Dann beide Tabellen (Lake und mountain) zusammenführen.

Und dann die counts prüfen.

0