
常见的数据处理方法和技巧
做统计分析遇到的一些数据处理的问题和小技巧
yuyang_liuyy
这个作者很懒,什么都没留下…
展开
-
Mysql 与 Oracle 基本语法的对照
Mysql 与 Oracle 基本语法的对照函数类型 oracle(11g) mysql(8.0.20) 语法 例子 窗口函数 over() over() 一致 Over()窗口函数最常见的搭配有以下几种: 1. rank(),dense_rank(),row_number() + over(partition by … order by …) 排名 2. sum(),avg(),count()聚合函数+over(partition .原创 2020-12-15 17:23:54 · 741 阅读 · 0 评论 -
ORACLE的SQL练习---8. 窗口函数OVER()
Over()窗口函数最常见的搭配有以下几种:rank(),dense_rank(),row_number() + over(partition by … order by …) 排名sum(),avg(),count()聚合函数+over(partition by … order by …)max(),min()+over(partition by … order by …) 最大值、最小值first_value(),last_value() + over(partition by … order原创 2020-12-08 09:25:06 · 361 阅读 · 0 评论 -
ORACLE的SQL练习---7. 拼接字符串
1. 使用||拼接:||的拼接可以实现两个或者多个字符串的拼接。例如:‘aaa’||‘bbb’||‘ccc’,下面为实际工作中批量更新字段长度的实例select 'alter table ' || a.TABLE_NAME || ' modify ' || a.COLUMN_NAME || ' ' || a.DATA_TYPE || '(' || a.DATA_LENGTH * 2 || ');' from user_tab_columns a where a.TABLE_NAME原创 2020-11-26 15:27:04 · 3001 阅读 · 0 评论 -
ORACLE的SQL练习---6. 利用oracle日期函数制作日期维度表
oracle常用的日期函数:sysdate【功能】:返回当前日期。【参数】:没有参数,没有括号【返回】:日期【示例】select sysdate from dual;返回:2020/11/26 10:04:37add_months(d1,n1)【功能】:返回在日期d1基础上再加n1个月后新的日期。【参数】:d1,日期型,n1数字型【返回】:日期【示例】select sysdate,add_months(sysdate,3) hz from dual;返回: 2020/11/2原创 2020-11-26 10:45:34 · 633 阅读 · 0 评论 -
ORACLE的SQL练习---5. 用connect by 实现层级递归
有如下地区列表,id为地区的序号,name为名称,pre_id为上级地区序号现需要给地区列表增加层级,并筛选出二级及二级以下地区的列表。期望结果如下:(LVL为层级)建表语句:create table LX_10( id VARCHAR2(100), name VARCHAR2(100), pre_id VARCHAR2(100))插入语句:insert into lx_10 (ID, NAME, PRE_ID)values ('1', '北京市', '0')原创 2020-11-25 15:29:47 · 217 阅读 · 0 评论 -
ORACLE的SQL练习---4. 聚合函数() + over(partition by ... order by ...)
求出下表中在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果 (高 / 低 / 相同)期望结果如下:建表语句:-- Create tablecreate table LX_05_SALARY( id NUMBER, department_name VARCHAR2(100), sal NUMBER, pay_date DATE);-- Add comments to the columns co原创 2020-11-25 15:23:46 · 586 阅读 · 0 评论 -
ORACLE的SQL练习---3. 分析时间交叉重叠的记录
由于系统问题造成某天会议室预定时间冲突,预定的开会时间如下:需要查询出开会时间有重叠的是哪几条预定记录。期望结果:建表语句:create table LX_04_N( id CHAR(1), starttime DATE, endtime DATE);插入语句insert into lx_04_n (ID, STARTTIME, ENDTIME)values ('1', to_date('15-01-2020 08:00:00', 'dd-mm-yyyy原创 2020-11-25 14:59:40 · 1146 阅读 · 0 评论 -
ORACLE的SQL练习---2. 实现15分钟一个间隔的记录统计
有如下一张记录表,如何查询出每隔15分钟的记录数,例如电商网站统计一个间隔的交易数等等……预期结果如下:--建表语句--创建练习表create table LX_02( id NUMBER, inputtime DATE); --插入数据insert into lx_02 (ID, INPUTTIME)values (1, to_date('14-01-2020 09:07:23', 'dd-mm-yyyy hh24:mi:ss'));commit;ins原创 2020-11-25 11:27:47 · 2007 阅读 · 1 评论 -
ORACLE的SQL练习---1.用SQL查询字段中至少连续出现N次的数字
1.编写一个 SQL 查询,查找NUM字段中至少连续出现两次的数字。例如,给定上面的 lx_01 表,里面的数据都是按照先后顺序插入的,现在需要找到NUM字段连续出现两次及以上的数值 。实现下图中的效果,1 和2是连续出现至少两次的数字。能力点:如何判断连续记录的数据。--创建练习表create table LX_01( id NUMBER, num NUMBER); --插入数据insert into lx_01 (ID, NUM) values (100001, 1);原创 2020-11-25 10:37:35 · 1792 阅读 · 0 评论