PostgreSQL: вычислить процент строк со столбцом выше определенного значения - PullRequest
1 голос
/ 05 августа 2020

Предположим, у меня есть таблица значений:

+----+-------+
| Id | Value |
+----+-------+
| 1  |  2    |
| 2  |  9    |
| 3  |  5    |
| 4  |  5    |
| 5  |  8    |
| 6  |  1    |
+----+-------+

Как я могу рассчитать процент строк, значение которых превышает заданный порог:

Например, с порогом 'выше 5' , как я могу запросить, чтобы получить следующее:

+-------+------------------+
| Total | Percent above 5  |
+-------+------------------+
|   6   |     33.33        |
+-------+------------------+

1 Ответ

3 голосов
/ 05 августа 2020

Использовать условное агрегирование:

select count(*),
       avg( (value > 5)::int ) * 100 as percentage_above_5
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...