Ich habe eine Tabelle, in der die beiden folgenden Befehle ausgeführt wird, gibt mir ein anderes Ergebnis: die richtige Anzahl oder Zeilen (etwa 1 Million) und der zweite Befehl gibt eine falsche Anzahl von ZeilenIn welchen Fällen gibt "Select count (*)" vs. "Select count (*) AS" in PostgreSQL andere Ergebnisse?
SELECT count(*) AS result_count FROM test_table;
SELECT count(*) FROM test_table;
Der erste Befehl gibt (ungefähr 50K). Die Abfragen werden in pgadmin ausgeführt.
Weiß jemand, warum das passiert? Auf anderen Tabellen, die ich getestet habe, sind die Ergebnisse konsistent und korrekt.
Für diese spezielle Tabelle auch dieser Befehl gibt mir die richtige Menge der Zeilen:
SELECT reltuples::bigint FROM pg_class where relname='test_table';
Die Tabelle hat drei Spalten, eine serielle ID (integer), einen Zeitstempel ohne Zeitzone und einen numerischen Wert.
Vielen Dank im Voraus für alle Informationen, Michalis
Ich glaube es nicht. Bitte fügen Sie die Abfragepläne zu Ihrer Frage hinzu. Plus die Tabellendefinition. – joop
@joop: Ich habe die Abfragen heute nach dem Neustart meines PCs wiederholt und die Ergebnisse sind konsistent und korrekt für alle Tabellen. Ich habe mich gefragt, ob das Problem, das ich bekommen habe, eine Folge von Korruption sein könnte, aber jetzt bin ich auch eher geneigt zu glauben, dass es ein menschlicher Fehler war. Danke, dass Sie sich die Zeit genommen haben, zu antworten. Da ich neu bei stackoverflow (als Mitglied) bin, könntest du mich wissen lassen, ob ich diesen Beitrag löschen oder offen halten soll? – Michalis
Ohne weitere Informationen kann dieses Problem nicht gelöst werden (der offensichtliche Grund ist, dass die Abfragen in verschiedenen Datenbanken oder Schemas ausgeführt wurden). WRT schließen: was auch immer dir passt. – joop