Anzahl der Datensätze pro Bundesstaat
Oft möchten wir die Anzahl der Datensätze für jeden Eintrag mit einem bestimmten Wert in einer anderen Spalte ermitteln. Die Methode .group_by() hilft bei genau dieser Art von Abfrage. Du kannst eine Spalte an .group_by() übergeben und sie in einer Aggregatfunktion wie sum() oder count() verwenden. Ähnlich wie .order_by() kann .group_by() mehrere Spalten als Argumente annehmen.
Diese Übung ist Teil des Kurses
Einführung in Datenbanken mit Python
Anleitung zur Übung
- Importiere
funcaussqlalchemy. - Erstelle ein
select-Statement, das den Wert des Felds state und eine Anzahl der Werte im Feldageabfragt, und speichere es alsstmt. - Verwende die Methode
.group_by(), um das Statement nach der Spaltestatezu gruppieren. - Führe
stmtüber dieconnectionaus, um die Anzahl zu erhalten, und speichere die Ergebnisse alsresults. - Gib die Schlüssel/Spaltennamen der zurückgegebenen Ergebnisse mit
results[0].keys()aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import func
# Build a query to select the state and count of ages by state: stmt
stmt = select([____, ____])
# Group stmt by state
stmt = stmt.group_by(____)
# Execute the statement and store all the records: results
results = connection.execute(____).fetchall()
# Print results
print(results)
# Print the keys/column names of the results returned
print(____)