Я пытаюсь получить процент строк, которые имеет набор определенного значения. Лучше всего объяснить на примере. Я могу сделать это по каждому столбцу очень просто, используя функцию «отношение к отчету» и over (), но у меня проблемы с несколькими группировками
Предположим, что таблица имеет 2 столбца:
column a column b
1000 some data
1100 some data
2000 some data
1400 some data
1500 some data
С помощью следующего запроса я могу получить для этого набора доменов, каждый из которых составляет 20% от общего числа строк
select columna, count(*), trunc(ratio_to_report(count(columna)) over() * 100, 2) as perc
from table
group by columna
order by perc desc;
Однако мне нужно, например, определить процент и количество строк, содержащих 1000, 1400 или 2000; Посмотрев на него, вы можете определить его 60%, но для этого нужен запрос. Это должно быть эффективным, так как запрос будет выполняться для миллионов строк. Как я уже говорил ранее, я работаю над одним значением и его процентом, но это то, что меня бросает.
Похоже, мне нужно где-то поместить предложение IN, но значения не будут этими конкретными значениями каждый раз. Мне нужно будет получить значения для части «IN» из другой таблицы, если это имеет смысл. думаю, мне нужно несколько группировок.