Есть ли хороший способ найти что-то в числителе совокупной ставки в sql? - PullRequest
0 голосов
/ 17 апреля 2020

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

Вот пример типа запроса, который у меня есть

select x.id,
     y.col_f
     count(*),
     ROUND(100.0 * count(y,col_d) / count(a.id) ,2) ratio1,
     ROUND(100.0 * SUM(case when y.col_c LIKE '%a%' or (y.col_a is null and y.col_b is not null) then 1 else 0 end)::INT/ count(y.id), 2) as ratio2,
     ROUND(100.0 * SUM((case when y.col_c LIKE '%b%' AND matches LIKE '%d%' then 1 else 0 end)::INT ) /   count(y.id) ,2) as ratio3
from table_x x inner join table_y y on y.parent_id = x.id
where x.col_g is not null
group by x.id, y.col_f;

Я в основном хочу пример (просто y.id числителя для каждого отношения). Я знаю, что мог бы сделать это с помощью подзапроса для каждого отношения, но мне интересно, есть ли способ с оконной функцией или что-то еще, что мне не хватает.

...