#mysql #mysql-workbench
#mysql #mysql-workbench
Вопрос:
В моей таблице есть числовой столбец с оценками. Я пытаюсь вычислить, какой процент людей из этого столбца набрал 1. Тем не менее, я, кажется, могу понять, как дважды выбрать один и тот же столбец, чтобы выполнить это простое вычисление. Я уверен, что мне не хватает чего-то очень простого?
SELECT scores
FROM table1
WHERE scores=1 DIV scores;
Ответ №1:
Вы можете выполнить условную агрегацию:
SELECT
100.0 * sum(case when scores = 1 then 1 else 0 end) / count(*) percentage
FROM table1
или поскольку MySQL вычисляет логические выражения как 1
для TRUE
и 0
для FALSE
:
SELECT
100.0 * sum(scores = 1) / count(*) percentage
FROM table1
или используйте avg()
:
SELECT
100.0 * avg(scores = 1) percentage
FROM table1