Как использовать один и тот же столбец для фильтрации и выполнения вычислений, таких как среднее, процентное соотношение и т. Д. - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть числовой столбец с оценками в моей таблице. Я пытаюсь подсчитать, какой процент людей из этого столбца набрал 1 балл. И все же я могу выяснить, как ВЫБРАТЬ один и тот же столбец дважды, чтобы выполнить этот простой расчет. Я уверен, что мне не хватает чего-то очень простого?

SELECT scores 
FROM table1
WHERE scores=1 DIV scores;

1 Ответ

0 голосов
/ 03 апреля 2019

Вы можете выполнить условное агрегирование:

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
...