Viele Zeilen zusammenfassen · Übung
Eine durchschnittliche Leihdauer berechnen
Die kürzeste und längste Leihdauer zeigen die Ränder des Katalogs, aber keine beschreibt seine Mitte. Würden alle sechs Leihdauern gleichmäßig verteilt, hätte jeder Gegenstand neun Tage. Ein Durchschnitt gibt diesen Ausgleichspunkt an.
Öffne summary.sql. Füge hinter dem MAX-Ausdruck ein Komma ein und ergänze dann diese fünfte Ergebnisspalte vor FROM items:
AVG(loan_days) AS average_loan_days
Klicke auf Run. Der Bericht mit einer Zeile wächst um einen Wert:
Columns: item_count | total_loan_days | shortest_loan_days | longest_loan_days | average_loan_days
6 | 54.0 | 2.5 | 20.5 | 9.0
AVG(loan_days) fordert SQLite auf, den numerischen Durchschnitt der beitragenden Werte zu berechnen. Für diesen Katalog beträgt die Summe 54.0 und die Anzahl 6, also ist das Ergebnis 9.0.
Du kannst dir die Berechnung als gleichmäßiges Verteilen der Summe auf die gezählten Zeilen vorstellen. Wenn drei bisher ungesehene Leihdauern 2.5, 4.25 und 8 betragen, ist ihre Summe 14.75; durch drei geteilt ergibt sie einen Durchschnitt mit Nachkommastellen. SQLite verwendet die Zeilen in der Abfrage statt eines in den Bericht eingetippten Wertes.
Das .0 macht das Ergebnis nicht zu Text. Es ist SQLites numerische Antwort, die Python ohne Rundung oder Ausschmückung darstellt. Ein anderer Katalog könnte einen Wert wie 6.25 ergeben, und dessen Nachkommastellen sind bedeutsam. Wandle den Durchschnitt nicht in eine ganze Zahl um und verpacke ihn nicht in einen Satz.
Behalte alle vier bisherigen Ausdrücke bei. Anzahl, Summe, Grenzwerte und Durchschnitt zusammen zu betrachten ermöglicht es, das Ergebnis zu prüfen. Ein Durchschnitt sollte zwischen Minimum und Maximum liegen, während die Summe geteilt durch die Anzahl eine weitere nützliche gedankliche Prüfung liefert.
Diese Prüfungen helfen, ohne zusätzlicher Code zu werden. Berechne den Durchschnitt nicht in Python, nachdem du die anderen Spalten gelesen hast. AVG(loan_days) in SQL zu belassen bedeutet, dass die Datenbank eine zusammenhängende Zusammenfassung aus einer Quellmenge zurückgibt.
Submit verwendet einen Katalog, dessen Durchschnitt wie eine ganze Zahl aussieht, und einen weiteren mit einem Durchschnitt mit Nachkommastellen. Es vergleicht numerische Werte mit einer kleinen Toleranz, weil sich manche Dezimalbrüche im Computer nicht exakt darstellen lassen. Du musst sie nicht runden. Gib SQLites Ergebnis direkt zurück.
Wenn Run die Summe unter der neuen Überschrift wiederholt, prüfe, ob der Funktionsname AVG statt SUM lautet. Wenn es den Durchschnitt der IDs bildet, prüfe die Spalte innerhalb der Klammern. Die Berechnung gehört zu loan_days.
Du hast jetzt fünf Möglichkeiten, dieselbe Menge von Quellzeilen zu betrachten. Die Anzahl misst ihre Größe, die Summe ihren Gesamtwert, Minimum und Maximum ihre Ränder und der Durchschnitt ihren Ausgleichspunkt.
Aufgabe
Füge AVG(loan_days) AS average_loan_days als fünfte Ergebnisspalte in summary.sql hinzu. Behalte die vier bestehenden Zusammenfassungswerte unverändert bei.
Führe die Abfrage aus und reiche SQLites numerischen Durchschnitt ein, ohne ihn zu formatieren oder zu runden.