#sql #count #pivot #average
#sql #считать #поворот #средний #подсчет #сводная
Вопрос:
У меня есть таблица под названием респондент, в этой таблице есть столбец под названием «оценка», который мне нужен, чтобы иметь возможность разделить респондентов на процентные доли на основе их оценки пользователем.
Более конкретно, какой процент респондентов опускается ниже 22,5, Какой процент респондентов опускается между 25,0 и 47,5, какой процент респондентов опускается между 50,0 и 75,0, какой процент респондентов опускается выше 75,0
Как бы я выразил это в ЗАПРОСЕ, мне нужно сгруппировать его по респондентам. Пожалуйста, я не могу в этом разобраться.
Комментарии:
1. Вы можете попробовать использовать команду group by .
2. Знаете ли вы, как это будет выглядеть в Запросе, как выглядит Запрос, не могли бы вы, пожалуйста, показать мне?
3. Я бы начал с изучения того, какую СУБД вы используете. MySQL и SQL Server — это 2 совершенно разных RBDM.
4. я использую MySQL, платформу Microsoft. Не могли бы вы знать , как я могу выполнить этот запрос ? я в очень затруднительном положении
5. Обязательно ли это должно быть в одном запросе? Вам разрешено использовать что-нибудь еще?
Ответ №1:
Вы можете использовать условную агрегацию. Синтаксис варьируется в зависимости от баз данных, но довольно удобный способ выразить это:
select
avg(case when score < 22.5 then 1.0 else 0 end) ratio1,
avg(case when score >= 25 and score < 47.5 then 1.0 else 0 end) ratio2,
...
from mytable
Это дает соотношение в виде десятичного значения между 0
и 1
, которое вы можете умножить на 100
, если хотите получить процент.