应用场景: 查询学生成绩级别(ABCDE)个人数和所占百分比(案列简单,勿喷)。 表结构:
create or replace table stu_grade(
id varchar2(36), level varchar(1) );
取各级别人数:
select level,count(id) num from stu_grade group by level;
取总人数:
select sum(1) from stu_grade;
这个是大家第一反应想到的sql,可以查询出相应级别的人数和总的人数。但是我们同时需要这两个sql的结果。 这个时候,就是使用ratio_to_report的时候了
select level,count(id) num,ratio_to_report(id) over() present from stu_grade group by level;
系列博客:ORACLE 实用函数使用案列
本文介绍了一种使用SQL查询学生成绩级别的方法,并通过ratio_to_report函数计算每个级别所占的比例。首先创建了一个名为stu_grade的表,然后通过group by和count函数统计各等级人数,最后使用ratio_to_report函数得到各等级的占比。
773

被折叠的 条评论
为什么被折叠?



