学习python第三天之多行函数
多行函数:(聚合函数/分组函数)
解释:多条数据进入,单条结果出来(多进单出)
1).max(obj):最大值
2).min(obj):最小值
3).sum(num):求和
4).avg(num):求平均值
5).count(obj):计数
【注意事项】:
1).max()和min()两个函数可以接受任何数据类型的实际参数
2).sum()和avg()两个函数只能接受number类型的数据
3).多行函数/聚合函数/分组函数满足自动忽略空值的特点(在某些情况下,我们不应该忽略空值...)
案例如下:
查询公司薪资最高的、最低的、工资总和以及平均值的信息?
select max(salary),min(salary),sum(salary),avg(salary)
from employees;
参看如下代码并思考:
select max(last_name),max(hire_date),min(last_name),min(hire_date)
from employees;
关于count()的使用:
需求如下:
查询公司有多少员工?
select count(employee_id),count(last_name),count(hire_date) from employees;
select count(1),count(2),count(0),count(107),count('*') from employees;
执行以上代码发现效果都是正确的,我们以后做计数操作的时候,我们都用count('*')来实现;
查看如下代码:
select count(department_id),count(commission_pct) from employees;
执行以上代码发现问题所在,只要是多行函数/聚合函数/分组函数满足自动忽略空值的特点
修改以上代码实现需要的效果:
select count(nvl(department_id,100)),count(nvl(commission_pct,1)) from employees;
思考:avg() = sum() / count()?
答:以上的等式成立
需求如下:
查询公司的平均奖金率?
select avg(commission_pct),sum(commission_pct) / count(commission_pct),
sum(commission_pct) / count(nvl(commission_pct,2)),
sum(commission_pct) / 107,
sum(commission_pct) / count(*)
from employees;
作业:
--1.显示系统时间(注:日期+时间)
select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
--2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)
select employee_id,last_name,salary,salary * 1.2 "new salary" from employees;
--3.将员工的姓名按首字母排序,并写出姓名的长度(length)
select last_name,length(last_name) from employees order by last_name;
--4.查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。
select last_name,round(months_between(sysdate,hire_date),0) "worked_month" from employees;
--5.查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数降序排列
select last_name,round(months_between(sysdate,hire_date),0) "worked_month"
from employees
order by "worked_month" desc;
--方式一:
select last_name || ' earns $' || salary || ' monthly but wants $' || 3 * salary "Dream Salary" from employees;
--方式二:
select last_name || ' earns' || to_char(salary,'$99999') || ' monthly but wants' || to_char(3 * salary,'$99999') "Dream Salary" from employees;
select last_name "Last_name",job_id "Job_id",
decode(job_id,'AD_PRES','A',
'ST_MAN','B',
'IT_PROG','C',
'SA_REP','D',
'E') "Grade"
from employees
where job_id in('AD_PRES','ST_MAN','IT_PROG','SA_REP','ST_CLERK')
order by "Grade" desc;
select last_name "Last_name",job_id "Job_id",
case job_id when 'AD_PRES' then 'A'
when 'ST_MAN' then 'B'
when 'IT_PROG' then 'C'
when 'SA_REP' then 'D'
else 'E' end "Grade"
from employees
where job_id in('AD_PRES','ST_MAN','IT_PROG','SA_REP','ST_CLERK')
order by "Grade" desc;
返回目录
学习python第三天之多行函数的更多相关文章
- 学习Python的三种境界
前言 王国维在<人间词话>中将读书分为了三种境界:"古今之成大事业.大学问者,必经过三种之境界:'昨夜西风凋碧树,独上高楼,望尽天涯路'.此第一境也.'衣带渐宽终不悔,为伊消得人 ...
- 学习python第三天
变量的命名规范 1.只能有 字母 数字 及_组成 2.不能以数字开头 3.避免与系统关键词重名:重名不会报错,但系统的功能就被自定义的功能屏蔽掉了(严重不建议这样做) 4._开头的变量都有特出含义 5 ...
- 【Python】Java程序员学习Python(三)— 基础入门
一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...
- 学习python第三天单行函数
1.去重:distinct关键字 需求:查看公司一共有多少部门? select department_id from employees;此代码会查出107条记录,存在部门重复的问题! select ...
- 学习python第三天数据库day2
day01回顾: 数据库: 定义:存储数据的仓库(database,简称db) 常用的数据库对象有哪些? 1).数据表(table) ***** 2).视图(view) 3).索引(index) 4) ...
- 系统学习python第三天学习笔记
day02补充 运算符补充 in value = "我是中国人" # 判断'中国'是否在value所代指的字符串中. "中国"是否是value所代指的字符串的子 ...
- python第三周文件处理和函数-----下
#默认参数的值是在一开始定义的时候就传给了函数, # 在后来的修改中不会被修改. #默认参数的值必须放到位置形参参数的最后面 #默认参数使用的场景是一个参数不经常变得场景,所以参数一般是不可变类型.字 ...
- python第三周:集合、函数、编码、文件
1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
随机推荐
- mysql网页客户端工具
mysql数据库的远程管理,云服务器数据库的管理监控等都可以使用 TreeSoft, TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB ...
- 解决:jsp 页面不全,response 内容不完整
前言:今天 jsp 页面输出不完整这个问题困扰了我几个小时,终于发现问题并解决了. 环境: tomcat 8.0.17 x64 jsp springmvc vue 问题: 本来页面正常,但加了几行代码 ...
- 浅谈白鹭Egret
浅谈白鹭Egret 最近在做一个移动项目,技术选型的时候接触到了白鹭,简单了解了之后觉得挺合适的,最终就选择了这个引擎. 为什么会选择白鹭引擎呢? 我看上他主要有一下几点: 1 ...
- Nib加载的方式实现自定义TableView
实现的效果 实现原理: 通过在主界面中用Bundle 的LoadNib的方式进行自定义窗体文件加载并渲染界面 实现步骤 Step One 创建TableViewCell 窗体 Step Two 定义接 ...
- http常见状态码有哪些?
ajax常见面试题 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术. ajax用来与后台交互 2:原生js ajax请求有几个 ...
- JavaWeb学习—思维导图
- 活字格企业 Web 应用生成器新手上路指南
活字格是一款企业 Web 应用生成器,使用了类 Excel 的设计界面,通过简单的拖拽操作,就能快速制作出一个 Web 信息管理系统.在整个使用过程中无需专业软件知识,没有任何技术门槛,能轻松实现各行 ...
- Ubuntu VNC 打开spyder无法输入(检测不到键盘配置)解决方法
在ubuntu中安装好spyder后, 打开spyder发现无法输入. 在打开spyder的终端窗口,有如下提示: QXcbConnection: Failed to initialize XRand ...
- 时间选择器(TimePicker)
时间选择器(TimePicker) 显示一个可供时间选择的界面 常用方法: setIs24HourView(true|false) 设置24小时格式,true为24小时格式 setCurrentHou ...
- DBFlow(4.2)新版使用
DBFlow新版使用 一.DBFlow4.2.4介绍 DBFlow是一个基于AnnotationProcessing(注解处理器)的ORM框架.此框架设计为了速度.性能和可用性.消除了大量死板的数据库 ...