Допустим, у меня есть таблица с именем Table1
, которая содержит три столбца: VALUE
, CODE
и TYPE
. Столбец VALUE
содержит оценки от 1 до 4 по различным вопросам. Столбец CODE
содержит код, относящийся к вопросу. Столбец TYPE
указывает, является ли вопрос частью бумажного (PAP) или онлайн (ONL) опроса.
Вот пример того, как выглядит стол.
#Table1
VALUE CODE TYPE
----- ------ ------
2 Q2 ONL
1 Q2 PAP
3 Q2 ONL
4 Q2 ONL
1 Q2 ONL
1 Q2 ONL
1 Q2 PAP
2 Q2 ONL
4 Q2 ONL
2 Q2 ONL
3 Q1 ONL
1 Q1 ONL
4 Q1 ONL
3 Q1 ONL
and so on...
Моя цель
Чтобы суммировать эту таблицу, используя SQL-запрос (Oracle), такой что -
1) I сначала считать все значения, которые являются 1 ИЛИ 2 для CODE
Q2
2) И разделите это число на общее число значений для Q2
3) Сгруппировать результаты по TYPE
, чтобы я сгруппировал результаты для ONL и PAP .
Ожидаемый результат
Так что в нашем случае результат этого запроса будет -
TYPE SCORE
PAP 0.625 (5/8)
ONL 1 (2/2)
Моя попытка
Столь же простой, как кажется, я не могу получить правильное значение. Я чувствую, что это требует вложенного запроса для хранения различных значений, но я не могу найти правильный пример, чтобы направлять меня. Вот моя неправильная попытка -
SELECT TYPE, VALUE/COUNT(VALUE) as SCORE FROM Table1
where
CODE = 'Q2' AND
VALUE in (1,2)
GROUP BY TYPE
Любая помощь будет принята с благодарностью.