java if case when_【SQL学习笔记4】case when 和if的用法
1.case用法
-- 用法一:
case when 条件1 then 字段取值1
when 条件2 then 字段取值2
when 条件3 then 字段取值3
else 字段取值4-- 如果上述全部不满足,则执行
end
-- 用法二:
case 字段名
when 取值1 then 字段取值1
when 取值2 then 字段取值2
when 取值3 then 字段取值3
else 字段取值4-- 如果上述全部不满足,则执行
end
2.if用法
if(条件,取值1,取值2)--若条件满足,则取值1,否则取值2
例子:现有用户行为数据表etl_online,查找2020年12月1日-2020年12月15日文章的下发数量,下发未曝光数量,曝光未点击数量,点击数量:
create table etl_online(
user_id varchar(20),-- 用户id
doc_id varchar(20),-- 文章id
auction varchar(20),-- 用户行为
p_day varchar(20)-- 时间
)
select p_day,doc_id,
case when click>0 then '点击'
when click<0 and rview>0 then '曝光未点击'
when rview<0 and vview>0 then '下发未点击'
when view<0 then '未下发'
else '其他' end as user_action,
count(user_id) as usrnum
(select p_day,doc_id,user_id, sum(click) as click, sum(view) as vview, sum(review) as rview
from
(select p_day,doc_id,user_id
if (uaction ='CLICK',1,0) as click,
if(uaction='VIEW',1,0) as vview,
if(uaction='RVIEW',1,0) as rview
from eta_online
where p_day between '2020-12-01' and '2020-12-15'
group by 1,2,3,4,5,6) as a
group by 1,2,3
) as a
group by 1,2,3
再来一个例子:
查询语文成绩优秀(85以上),良好(70-85),及格(60-70)的人数:
方法一:
select GP,count(GP) as num from
(select stu_id,
case when grade>=85 then'优秀'
when grade>=70 and grade <85 then '良好'
when grade<70 and grade >=60 then '及格'
else '不及格' end as GP
from
grade
join
(select couid from course where couname='语文') as a
on a.couid=grade.couid)
group by 1
方法二:
select count(if(grade>=85,stu_id,null)) as A,
count(if(grade>=70 and grade<85,stu_id,null)) as B,
count(if(grade>=60 and grade<70,stu_id,null)) as C,
count(if(grade<60,stu_id,null)) as D
from grade
join
(select couid from course where couname='语文') as a
on grade.stu_id=a.stu_id
java if case when_【SQL学习笔记4】case when 和if的用法相关推荐
- sql语句多个表补齐四位_SQL学习笔记 - CTE通用表表达式和WITH用法
CTE or WITH WITH语句通常被称为通用表表达式(Common Table Expressions)或者CTEs. WITH语句作为一个辅助语句依附于主语句,WITH语句和主语句都可以是SE ...
- 探针一号的SQL学习笔记
SQL学习笔记 文章目录 SQL学习笔记 1.问题 2.SQL基本语句 3.SQL基本数据查询 4.SQL复杂点的数据查询 5.DML操作 6.数据表操作 1.问题 什么是数据库? 是一个仓库,可以按 ...
- 拉勾网《32个Java面试必考点》学习笔记之十一------消息队列与数据库
本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- 《Java并发编程实践》学习笔记之一:基础知识
<Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念: (2)进程:是一种活动,它是由一个动作序列组成 ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)
Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...
- 拉勾网《32个Java面试必考点》学习笔记之二------操作系统与网络知识
本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...
- 拉勾网《32个Java面试必考点》学习笔记之一------Java职业发展路径
本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
最新文章
- 3、 PPT合并形状
- python 文件中出现 Indentation Error: unexpected indent 的错误
- uvalive4835(模拟)
- ThhinkPHP5隐藏入口文件index.php
- [软件测试airtest软件安装]——填坑
- 阻止你变现的,从来都不是开源许可证
- 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)
- java实现linux变量替换_linux java 配置 含环境变量 | 学步园
- 尼得科向全新的伺服技术挑战
- 【SA TSP】基于matlab模拟退火算法求解34城市旅行商问题【含Matlab源码 882期】
- ArcMap打不开.jpg .bmp
- TTTTTTZZZZZZ(系统编程---初识线程,查看线程调用栈的三种方法)10
- HTML 下拉式菜单
- DropDownMenu下拉菜单
- 白话Elasticsearch59-数据建模实战_ Nested Aggregation/ Reverse nested Aggregation对嵌套的博客评论数据进行聚合分析
- [激光原理与应用-19]:《激光原理与技术》-5- 激光器的增益、损耗、自激振荡条件
- php excel 导出图片,phpexcel 导出多张图片
- 一文讲通HTML样式管理,利用CSS语法实现html样式更改(在html文件内)
- 以高德为例,超级APP启动提速的实践和思考
- 【MySQL】MySQL表的CRUD操作(基础)
热门文章
- 台式计算机如何取消屏幕密码,台式电脑怎么取消锁屏?
- cityscape 数据集 mmsegmentation训练记录
- termux自动启动ssh
- 文件压缩原理是什么?
- 保证线程安全的10个小技巧
- android解锁方法,手机如何解锁密码 几种安卓手机解锁方法介绍
- stm32f407工程改为stm32f401的方法,并修改时钟
- IndentationError:unindent does not match any outer indentation解决方案
- POJ-Bound Found | 尺取法+绝对值特性
- t3服务器一登录就运行时错误,用友T3软件登陆系统管理提示运行时错误3709