Wie und wann ist die Nutzung durch Gruppen nach und deutlicheHAVING Count (*)> = 2
Wer hat gesagt, nichts über Familienangehörige hier? Niemand, es ist implizit. Sehen Sie, wenn Sie eine Gruppe, die "unsichtbare dritte Dimension" der konstituierenden Zeilen für diese Gruppe enthält eine Zeile für jedes Element in dieser Gruppe. Weil du Gruppe durch die Spalten, die Sie bei der Gesellschaft und Mitarbeiter Tische, ein Bestandteil Zeile für jedes unterhaltsberechtigte SELECT ist in der FROM-Klausel verbunden. Also der HAVING-Klausel führt die Berechnungen und Funktionen auf die "unsichtbare dritte Dimension" der konstituierenden Zeilen "Sitzung hinter "jeder Gruppe. Nutzen Sie daher die folgende Codezeile: HAVING Count (*)> = 2 Mit Hilfe dieses Codes in eine Liste ist wie ich Folgendes sagen: Für jede Gruppe mit mindestens zwei Zeilen konstituierende Sitzung hinter sich. Eine weitere Möglichkeit zur Visualisierung der HAVING-Klausel ist es, der es als eine WHERE-Klausel, die auf diesen Zeilen konstituierende Sitzung hinter jedem betreibt denken Gruppe. SELECT e.LastName + ',' + e.FirstName AS EmployeeName, count (*) als NumDependantsAdded13OrOlder FROM Employee e INNER JOIN Abhängig d ON e.SSN = d.SSN GROUP BY e.LastName, e.FirstName ORDER BY EmployeeName ASC Jetzt können Sie eine HAVING-Klausel in den Code so angezeigt, dass Sie nur Mitarbeiter, deren jüngste Abhängig wurde der Datenbank hinzugefügt abzurufen. SELECT e.LastName + ',' + e.FirstName AS EmployeeName, count (*) als NumDependantsAdded13OrOlder FROM Employee e INNER JOIN Abhängig d ON e.SSN = d.SSN GROUP BY e.LastName, e.FirstName MIT Min (d.Age)> 13 ORDER BY EmployeeName ASC Zu aggregieren Mittel, um mehrere Elemente zu einem Ganzen zu sammeln. Ein Aggregat-Funktion arbeitet mit einer Reihe von Zeilen und gibt einen einzelnen Wert, der die Summe dieser Zeilen. Zum Beispiel, Avg (Gehalt) gibt die durchschnittliche Gehalt der ausgewählten Mitarbeiter Zeilen, so Avg () gilt als eine Aggregatfunktion. Aggregatfunktionen sind auch als Set-Funktionen bezeichnet, da sie über eine Menge von Daten arbeiten. Der beste Weg, um zu bestimmen, wenn man kann und was nicht Aggregatfunktionen verwenden ist sorgfältig auf die englische Fassung der Frage zu hören (das heißt, die Abfrage), die Sie fordern die Datenbank. "Was ist das durchschnittliche Gehalt aller Mitarbeiter nach dem 4. Juli geboren, 1975?" Ist zum Beispiel eine einfache, gut ausgebildete Frage, so dass es passt leicht in eine SQL-Anweisung, wie der folgende Code zeigt: SELECT Avg (Gehalt) FROM Mitarbeiter WHERE DateOfBirth> '07 / 04/1975 ' Aber was ist mit "Was ist der Name des einzelnen Mitarbeiters und der durchschnittliche Gehalt der Mitarbeiter nach dem 4. Juli geboren, 1975?" Ist das eine berechtigte Frage? Eigentlich sind es zwei getrennte Fragen, die unnatürlich sind "smushed" zusammen. Die folgende Abfrage, dass diese Frage zu beantworten versuchen werde, ist ebenso unnatürlich und würde daher, werfen einen Fehler: SELECT LastName + ',' + FirstName AS EmployeeName, Avg (Gehalt) FROM Mitarbeiter WHERE DateOfBirth> '07 / 04/1975 ' Wie kommt man sowohl die einzelnen Mitarbeiter und der Durchschnitt aller Arbeitnehmer als eine einzige Abfrage-Ergebnis gesetzt? Sie kann es nicht! Das sind zwei verschiedene Datensätze mit zwei völlig unterschiedlichen Dimensionen, und man hat überhaupt nichts mit dem anderen zu tun. Die Tatsache, dass beide Fragen zum Mitarbeiter macht es keinen Unterschied gibt. Da nicht alle Funktionen, die Avg ()-Funktion gibt einen einzelnen Wert in diesem Fall, den Durchschnitt der Werte in der Spalte Gehalt für die Menge der Daten durch die WHERE-Klausel beschrieben . Das ist ein Wert ist, was bedeutet, dass es genau einen Zeitpunkt im letzten Abfrage-Ergebnis angezeigt. Mit anderen Worten: Es hat eine Dimension von einer Zeile mit einer Spalte. Auf der anderen Seite betrachten die Spalte, indem Sie den folgenden Code definiert: LastName + ',' + FirstName AS EmployeeName EmployeeName ist keine Funktion, noch übernimmt sie arbeiten in einem Datensatz. Wie zu erwarten, gibt diese Abfrage Spaltendefinition ein Wert für jede Zeile in der Daten durch die WHERE-Klausel beschrieben. Mit anderen Worten: Es hat eine Dimension von N Zeilen, die von einer Spalte. Natürlich kann die Mittelung Funktion nicht koexistieren mit der Spalte Anzeige in derselben SQL-Anweisung, da sie von verschiedenen Dimensionen. Dieselben Regeln gelten für alle den Betrieb Aggregatfunktionen wie min (), Max (), Sum (), und so weiter. Wenn GROUP BY-Klausel in einer SQL-Anweisung vorhanden, die Menge der Daten, über die eine Set-Funktion arbeitet ändert sich von der einen ganzen Datensatzes durch die Erklärung zu jedem einzelnen Satz von Zeilen konstituierende Sitzung hinter jeder Gruppe beschrieben. Sehen Sie, warum das so ist nützlich, Visualisierung? Indem die unsichtbare dritte Dimension, können Sie jetzt visualisieren das Ergebnis der Set-Funktion für jeden Satz oder eine Gruppe von Zeilen in der Ergebnismenge. Wenn Sie das Durchschnittsalter finden wollen, bei der die Angehörige von jedem Mitarbeiter waren in der Datenbank erfasst, zum Beispiel würden Sie die folgende Abfrage: SELECT e.LastName + ',' + e.FirstName AS EmployeeName, Avg (d.Age) als AverageAge FROM Employee e INNER JOIN Abhängig d ON e.SSN = d.SSN GROUP BY e.LastName, e.FirstName Und wäre das Ergebnis wie folgt: EmployeeName AverageAge Churvis, Adam 55 Davidow, Allen 30 Silverberg, Bethany 15 Sanders, Billy 10 Thor, Dirk NULL Rodriguez, Kiki 17 Lester, Lance 1 Romanova, Natasha 38 Kayashunu, Oksal 10 Kokilas, Susan 2 Williger, Timmy 38 Haymen, Türk 16 Feuilliette, Valerie 59 Ein Artikel eingereicht von Daniel Carlson Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Wie und wann ist die Nutzung durch Gruppen nach und deutliche" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 301 users browsing the articles directory |
|
|