Ich habe eine Tabelle mit Personen, die einen Namen, einen Ort (wo sie leben) und eine Eltern-ID haben (Eltern sind auf einem anderen Tisch gespeichert). Also zum Beispiel:
%Vor%Ich muss zählen, wie viele Menschen in Chicago leben und haben Geschwister (teilen Sie eine Eltern-ID), die in New York leben. Also für das obige Beispiel, die Zählung wäre 3.
%Vor%Kann jemand mir helfen, die SQL zu schreiben, um diese Zählung abzufragen?
Die korrelierte Abfrage ist ein sehr schöner Weg und sehr effizient. Vermeiden Sie die Verwendung von distinct, da es eine teure Operation ist. Group by ist eine nette Alternative gegenüber der Verwendung von distinct. Verstehen Sie die Daten und strukturieren Sie die Abfrage entsprechend. Hier ist eine weitere Option, die Engine optimiert ist ...
%Vor%Sieht so aus, als ob Minhs Antwort gut funktioniert, aber hier ist ein weiteres Beispiel, das ein Self Join verwendet.
%Vor%Sollte "3" nur für die obige Tabelle ergeben.
EDIT: DISTINCT a.parent_id basierend auf dem Lithis-Vorschlag hinzugefügt.
EDIT2: Wie von Uueerdo bemerkt, würde eine child_id oder eine Art eindeutige ID im Fall von 2 Geschwistern, die in Chicago leben, und 1 Geschwister, die in New York leben, wirklich helfen. Ich habe die ursprüngliche Abfrage bearbeitet, um dies widerzuspiegeln.
Da dies nicht wirklich eine "Antwort" auf Ihre Frage ist, weil es keine solche child_id gibt, würde ich auf Uueerdos Antwort verzichten, tut mir leid!