sql—通过选择包含特定单词的行来确定百分比

bvjxkvbb  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(354)

我有以下数据:

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

我需要知道当分数是60分时,有多少情况下它会导致一个好分数。
我应该假设单词grade出现在文本中单词grade(在本例中为60 grade)。我的预期输出是基于计数只有60级的行的百分比。
如何通过查看分数为60分的值来选择此信息并确定百分比?

46qrfjad

46qrfjad1#

您可以尝试使用条件聚合

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
p1iqtdky

p1iqtdky2#

我建议使用 avg() 对于百分比:

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

相关问题