SELECT *, COUNT (*) in SQLite
Wenn ich eine standard-Abfrage in der SQLite:
SELECT * FROM my_table
Bekomme ich alle Datensätze in meiner Tabelle als erwartet. Wenn ich folgende Abfrage:
SELECT *, 1 FROM my_table
Bekomme ich alle Datensätze wie erwartet mit dem am weitesten rechts liegenden Spalte mit '1' in allen Datensätzen. Aber wenn ich führen Sie die Abfrage:
SELECT *, COUNT(*) FROM my_table
Bekomme ich nur EINE Zeile (mit der ganz rechten Spalte ist eine korrekte Zählung).
Warum ist solche Ergebnisse? Ich bin nicht sehr gut in SQL, vielleicht ist ein solches Verhalten wird erwartet? Es scheint sehr seltsam und unlogisch für mich :(.
InformationsquelleAutor der Frage grigoryvp | 2010-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
SELECT *, COUNT(*) FROM my_table
ist nicht, was Sie wollen, und es ist nicht wirklich gültig, SQL, müssen Sie die Gruppe, indem Sie alle Spalten, die nicht ein Aggregat.Würden Sie wollen so etwas wie
InformationsquelleAutor der Antwort nos
Wenn Sie möchten die Anzahl der Datensätze in der Tabelle, starten Sie einfach:
InformationsquelleAutor der Antwort rafaelbattesti
count(*) ist eine Aggregatfunktion. Aggregatfunktionen müssen gruppiert werden, die für einen sinnvollen Ergebnisse. Sie können Lesen: Anzahl Spalten group by
InformationsquelleAutor der Antwort Burçin
Wenn das, was Sie wollen, ist die Gesamtanzahl der Datensätze in die Tabelle angehängt, um jede Zeile, die Sie tun können, so etwas wie
Teilen und genießen.
InformationsquelleAutor der Antwort Bob Jarvis