2.将学生按照性别区分
我们一般的写法就是使用group by进行分组。
select t.ssex, count(t.sname) from STUDENT t group by t.ssex;
如果我们需要求男生的人数是女生的多少倍怎么计算?
3.求男生的人数是女生的多少倍(sum和case when的结合使用)
select "男生人数", "女生人数", "男生人数" / "女生人数" as 倍数
from (select sum(case
when t.ssex = '男' then
end) as "男生人数",
sum(case
when t.ssex = '男' then
sum和case when的结合使用废话不多说,我们直接进行测试。1.学生表数据2.将学生按照性别区分我们一般的写法就是使用group by进行分组。select t.ssex, count(t.sname) from STUDENT t group by t.ssex;如果...
Oracle数据库SQL中经常使用sum函数和case when条件判断case when中是可以加多个条件的name 多条件时要注意 then的条件直观代码举例partake_Num 要求和的字段COR_STATUS 需要判断的字段需要计算 COR_STATUS =1 的时候 partake_Num 字段的 和错误写法:
then 1 的话 这就是统计partake_Num有多少行了 而不是计算 partake_Num的 和正确写法:
要注意 then后面是可以加条件的...
SUM用法:使用sum聚合函数配合case when xx then x else xx end)进行统计当满足条件时的和。
字面理解就是:sum(1)的意思就是加1个,sum(0)的意思加0个。
比如:选课结果表中如果sfkzyxk这个字段满足等于1的情况有5条记录,不满足的等于0的记录有5,那么查出来的和就是5个。
中间过程是1+1+1+1+1+0+0+0+0+0 = 5
sql:select sum(case when sfkzyxk=‘1’ then ‘1’ else ‘0’ end) fro
Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值。这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的效率。 代码如下:CREATE TABLE salaryByMonth( employeeNo varchar2(20), yearMonth varchar2(6), salary number) ;insert into SALARYBYMONTH (EMPLOYEENO, YEARMONTH, SALARY)values (1, ‘200805’, 500);insert into SALARYBYMONTH (EMPLOYEENO, YEA