Aggregatfunktionen sind eine praktische Funktion von Structured Query Language und umfassen mathematische Operationen, Maximum, Durchschnitt und insgesamt zu berechnen , unter anderem. Wie der Begriff schon sagt, arbeitet ein Aggregat -Funktion auf eine ganze Reihe von Daten und gibt einen einzelnen Wert unabhängig von der Anzahl der Datensätze, die Sie wählen . Obwohl Sie sehen meistens Aggregatfunktionen im Hauptteil einer SQL-Anweisung , können Sie sie in Unterabfragen auch . Aggregatfunktionen
SQL haben Aggregatfunktionen eine weitgehend statistischen Zwecken . Die Funktionen , AVG ( ) , STDDEV () und der Varianz ( ), zum Beispiel , wird der Mittelwert , die Standardabweichung und Varianz für einen Satz von Zahlen . Andere Aggregatfunktionen arbeiten sowohl numerische Daten und Textdaten ; MIN () und MAX () finden den größten Wert für eine Datenbank-Feld , ob es eine Zahl oder ein Zeichen enthält. Die COUNT ()-Funktion zählt die Anzahl der Datensätze in einer SQL-Anweisung ausgewählt . Zum Beispiel zeigt die folgende Anweisung die Anzahl der California Kunden in einer Datenbank mit Guthaben von mindestens $ 1.000:
SELECT COUNT ( *) FROM Kunden WHERE State = ' CA' und Balance > = 1000,00;
Unterabfragen
Die WHERE-Klausel einer SQL SELECT , UPDATE, DELETE oder INSERT verengt sich die Anzahl der Datensätze die Anweisung gibt oder beeinflusst . Diese leistungsstarke Funktion erzeugt fein geschliffen Ergebnisse . Neben der Verwendung von Standard-Bedingungen , wie der Vergleich eines Felds zu einem literalen Wert , können Sie mit SQL die " IN "-Bedingung , um ein Feld zu einer Liste von Werten zu vergleichen, wie im folgenden Beispiel :
SELECT customer_id , Name, Status FROM Kunden WHERE Zustand IN (' CA ', ' NV ', ' OR') ;
Diese Anweisung listet Kunden aus Kalifornien, Nevada und Oregon. Eine Unterabfrage erweitert dieses Konzept weiter durch das Ausfüllen von Werten aus einer SELECT-Anweisung in der Haupt- SELECT, wie dieses Beispiel zeigt :
SELECT customer_id , Name, Status FROM Kunden WHERE Zustand IN ( SELECT DISTINCT FROM sales_reps Zustand );
SELECT zeigt jene Kunden , die ein Vertriebsmitarbeiter in ihrem Staat.
Aggregates in Unterabfragen
Sie können Raffinesse zu einer Unterabfrage hinzufügen durch Zugabe einer Aggregatfunktion . Zum Beispiel können Sie eine Liste von Nevada Kunden mit Guthaben größer als die größte für California Kunden , wie in diesem Beispiel :
SELECT customer_id , Name, Status FROM Kunden WHERE State = ' NV ' und Balance > ( SELECT MAX (Saldo ) FROM Kunden WHERE State = ' CA ');
die innere Abfrage bestimmt die maximale Balance für California Kunden , dann nutzt sie, um Nevada Kunden mit mehr Guthaben finden
.
korrelierte Unterabfragen
Eine korrelierte Unterabfrage ist eine, die den gleichen Tisch setzt für innere und äußere Abfragen. Die innere Abfrage übergibt Ergebnisse zu der äußeren , und umgekehrt. Das folgende Beispiel zeigt eine Liste der Kunden, deren Saldo größer als der Durchschnitt :
SELECT customer_id , Name, Status FROM Kunden WHERE c1 Balance > ( SELECT avg ( Balance ) FROM Kunde WHERE c2 = customer_id.c1 customer_id . c2) ;
Beachten Sie, dass die äußere Abfrage die Tabelle customer Alias verwendet " . c1 " die innere Abfrage verwendet " . c2 " The Alias ermöglicht die Abfrage, um die gleichen Kunden -Tabelle als zwei unterschiedliche Tabellen verwenden