2016-05-12 6 views
-2

У меня есть таблица, где работают две следующих команд дают мне другой результат:В каких случаях «Выберите count (*)» vs «Выбрать count (*) AS» в PostgreSQL дать разные результаты?

SELECT count(*) AS result_count FROM test_table; 
SELECT count(*) FROM test_table; 

Первая команда возвращает правильное число или строки (около 1 млн), а вторая команда возвращает неверное число строк (около 50K). Запросы запускаются из pgadmin.

Кто-нибудь знает, почему это происходит? На других таблицах, которые я тестировал, результаты являются последовательными и правильными.

Для этой конкретной таблицы, даже эта команда дает мне правильное количество строк:

SELECT reltuples::bigint FROM pg_class where relname='test_table'; 

Стол имеет 3 колонки, серийный идентификатор (целое), метку времени, без временной зоны и числовое значение.

Заранее спасибо за любую информацию, Михалис

+3

Я этому не верю. Пожалуйста, добавьте планы запросов к вашему вопросу. Плюс определение таблицы. – joop

+0

@joop: Я повторил запросы сегодня после перезагрузки моего компьютера, и результаты согласованы и правильны во всех таблицах. Мне было интересно, может ли проблема, которую я получаю, быть результатом некоторой коррупции, но теперь я также более склонен полагать, что это была человеческая ошибка. Спасибо что нашли время ответить. Поскольку я новичок в stackoverflow (как член), вы могли бы сообщить мне, должен ли я удалить этот пост или оставить его открытым? – Michalis

+0

Без дополнительной информации эта проблема не может быть решена (очевидная причина заключается в том, что запросы выполнялись в разных базах данных или схемах). Закрытие WRT: все, что вам подходит. – joop

ответ

0

Мой первоначальный вопрос может быть недействительным, поскольку я не был в состоянии воспроизвести проблему после перезагрузки моего компьютера на следующий день.