sql学习-with as的使用-分析数据得到结果

Posted 许佳佳233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql学习-with as的使用-分析数据得到结果相关的知识,希望对你有一定的参考价值。

概述

当前有一张“学生成绩表”
需要查询男女的及格率。

例子

create table StudentScore (
 name string,
 score int,
 sex string
);

INSERT INTO StudentScore VALUES
('AAA',32,'man'),
('BBB',58,'man'),
('CCC',82,'man'),
('DDD',44,'woman'),
('EEE',92,'woman');

select查询

with as作用:
定义一个SQL片断,该SQL片断会被整个SQL语句所用到。
不仅可以提高代码的可读性,也可以提高代码的复用性。

with
tmp_sex_count as (
    select count(1) as count_all,sex
    from StudentScore
    group by sex
),
tmp_sex_score as(
    select count(1) as count_0_60
    ,sex
    from StudentScore
    where score<60
    group by sex
)
select tmp_sex_count.sex as sex
,count_0_60
,count_all 
,count_0_60*100/count_all as percent_0_60
from tmp_sex_count
join tmp_sex_score on tmp_sex_score.sex=tmp_sex_score.sex;

查询结果

man|2|3|66
woman|2|2|100
man|1|3|33
woman|1|2|50

以上是关于sql学习-with as的使用-分析数据得到结果的主要内容,如果未能解决你的问题,请参考以下文章

sql学习-with as的使用-分析数据得到结果

sql学习-with as的使用-分析数据得到结果

sql里面 with...as 是啥意思啊?如何使用

[sql]with..as表达式递归查询

大数据之Hive:with tmp1 as ()

转:SQL数据库中临时表临时变量和WITH AS关键词创建“临时表”的区别