Как вывести подсчет количества строк в Oracle SQL* Plus - PullRequest
0 голосов
/ 26 марта 2020

Я использую SQL* Plus с Oracle 11.2, и я знаю, как вывести количество строк, соответствующих некоторым условиям, например:

select count(*) from MY_TABLE where MY_FIELD is not null;

Также легко вывести все строки в MY_TABLE:

select count(*) from MY_TABLE;

Однако, как я могу вывести в SQL* плюс соотношение двух отсчетов, т.е. как я могу сделать в SQL* Плюс вычисление на выходе из SQL команд? .


Некоторые заметки :

  1. Меня интересует это, потому что у меня долго - фоновый процесс, который обновляет значения в столбце MY_FIELD с течением времени с null до текста, поэтому было бы неплохо быстро увидеть в SQL* Плюс, какое соотношение строк уже сделано.

  2. Я пытался

    (select count(*) from MY_TABLE where MY_FIELD is not null) / (select count(*) from MY_TABLE);
    

    , но это, очевидно, не работает, потому что это неправильная команда SQL.

1 Ответ

2 голосов
/ 26 марта 2020

count(<expression>) будет считать только те строки, где <expression> не NULL, если <expression> не равно * - тогда он считает любые строки. Таким образом, вы можете использовать:

SELECT count(my_field)
       /
       count(*)
       FROM my_table;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...