Я совершенно новичок в PostgreSQL.У меня есть следующая таблица my_table:
a b c date
1 0 good 2019-05-02
0 1 good 2019-05-02
1 1 bad 2019-05-02
1 1 good 2019-05-02
1 0 bad 2019-05-01
0 1 good 2019-05-01
1 1 bad 2019-05-01
0 0 bad 2019-05-01
Я хочу вычислить процент «хорошо» из столбца c для каждой даты.Я знаю, как получить число «хорошо»:
SELECT COUNT(c), date FROM my_table WHERE c != 'bad' GROUP BY date;
Что возвращает:
count date
3 2019-05-02
1 2019-05-01
Моя цель состоит в том, чтобы получить это:
date perc_good
2019-05-02 25
2019-05-01 75
ТакЯ попробовал следующее:
SELECT date,
(SELECT COUNT(c)
FROM my_table
WHERE c != 'bad'
GROUP BY date) / COUNT(c) * 100 as perc_good
FROM my_table
GROUP BY date;
И я получаю сообщение об ошибке, говорящее
более одной строки, возвращенной подзапросом, используемым в качестве выражения.
Я нашел этот ответ, но не уверен, как или если он применим к моему делу:
Расчет процента в PostgreSql
Как мне рассчитать процент для несколькихстроки?