Определите процент, выбрав строки, содержащие определенное c слово - PullRequest
1 голос
/ 17 июня 2020

У меня есть следующие данные:

Year  score count
2012 20 grade 2000
2005 20 grade 32
2005 40 grade 428 
2006 60 grade 731
2006 60 grade 472
...

Мне нужно знать, в каком проценте случаев, когда оценка составляет 60 баллов, это приводит к хорошей оценке. слово оценка появляется в тексте как слово оценка (в данном случае 60 баллов). Моим ожидаемым результатом будет процент строк только с 60 оценками на основе подсчетов.

Как я могу выбрать эту информацию, просмотрев значения с оценкой 60 в Score и определить процентное соотношение?

Ответы [ 2 ]

1 голос
/ 17 июня 2020

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

select count(*)
 , sum(case when score like '60%' then 1 else 0  end)  num_x_60
 , (sum(case when score like '60%' then 1 else 0 ) / count(*))*100 perc
from my_table  
0 голосов
/ 17 июня 2020

Я рекомендую использовать avg() для процента:

select avg(case when score like '60%' then 100.0 else 0 end) as percentage
from my_table 
...