тип (type_c)
Есть только два типа для cast_refresh : granted и decline
cast_refresh | type_c
| 10 | granted |
| 10 | decline |
| 10 | decline |
| 11 | decline |
| 12 | granted |
Как можно посчитать cast_refresh для каждого типа, если cast_refresh с типом decline И granted (например, 10, в данном случае) должны будут относиться к decline?
А где accept то?
Поправил, granted
Табличку выкинуть, переделать нормально... (Не, ну так-то NOT EXISTS для одного, и без него для второго. Но таки структура странненькая).
cast_refresh ппосчитатть уникальные ?)
Угу, должно быть что-то вида granted 1 decline 2
сдеелайте пример таблицы на https://www.db-fiddle.com))))
Для наполнения.. https://www.db-fiddle.com/f/pEdoT9hHkKk3aTwy4ti8vc/0 Это вид, который должен быть в итоге.. https://www.db-fiddle.com/f/pEdoT9hHkKk3aTwy4ti8vc/2
А мне вот интересно, а где такие задачи задают? :-)
Я не волшебник, я только учусь. )))
Это хорошая задача на внимательность к условиям - ведь что бы вы не выбирали (при заданных условиях, и наличию данных) результатом будет единица, вам же остается посчитать все остальное и добавить +1 к тому результату согласно вашего условия :-)
https://t.me/pgsql/476650
Для значения 10 получалось присутствие и в accepted и в decline Не очень понял, как можно было бы проставить этот признак (кроме решений выше, которые написали участники) Возможно, это и подразумевалось! Но потом надо было расширить решение на большее количество type_c
а зачем что-то проставлять,? сказано - посчитай все остальное и добавь +1 к тому результату где нужное слово, потому что это одна группа (что 10 что '......')
спрошу просто - сколько count -вернется при значении 10 и неважно второму параметру?
известно к к какому слово отнести эту единицу? (согласно условий)
исключи из выборки все что с ид 10 и посчитай коунтом, а затем добавь единицу к результату согласно условию
with cte as ( select type_c, count(cast_refresh) as cnt from refreshing_subj where cast_refresh !=10 group by type_c) select type_c, count(cnt) FILTER(where type_c='decline') +1 from cte group by type_c Получилось вот так
ну и прекрасно, ведь к-во записей для обработки стало на 3 меньше :-)
Обсуждают сегодня