Ich versuche Bezirke zu finden, die Kriminalitätsraten unter der durchschnittlichen Kriminalitätsrate haben, die für jede Tabelle berechnet wird. Ich sollte das für drei verschiedene Tische tun und jeder Tisch muss seine eigene durchschnittliche Kriminalitätsrate haben. So habe ich es gemacht, aber ich habe mich gefragt, ob es keinen besseren Weg gibt? Würde das schreiben als eine gespeicherte Prozedur oder Funktion besser sein (nicht sicher, wie ich das machen würde)? Wie sonst kann das gemacht werden?Finden von Raten niedriger als Durchschnittswerte für mehrere Tabellen
T1, T2, T3 sind Zustände für dieses Beispiel. Ich betrachte Distrikte in drei verschiedenen Staaten und möchte eine durchschnittliche Kriminalitätsrate für jeden Staat. Dann möchte ich die Bezirke ausdrucken, die unter diesen Durchschnitt fallen. Ich möchte auch gerne herausfinden, aus welchem Vereinigungsergebnis die Ergebnisse stammen.
SELECT district, population
FROM T1
WHERE (crime/Population) < (SELECT AVG(crime/population) From T1)
UNION ALL
SELECT district, population
FROM T2
WHERE (crime/Population) < (SELECT AVG(crime/population) From T2)
UNION ALL
SELECT district, population
FROM T3
WHERE AND (crime/Population) < (SELECT AVG(crime/population) From T3)
Was T1 ist? Was ist T2? Was ist T3? Siehe: [Warum sollte ich ein MCVE für eine scheinbar einfache SQL-Abfrage bereitstellen?] (Https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve- for-was-scheint-zu-mir-eine-sehr-einfache-sql-Abfrage) – Strawberry
T1, T2, T3 sind Zustände. – Rubiks
Überlegen Sie ernsthaft, Ihr Schema zu ändern. Du brauchst 1 Tisch, nicht 50! – Strawberry