
SQL
-永不妥协-
爱生活,爱老婆。
展开
-
Excel反向匹配
Excel的vlookup应该是我们日常办公室使用频率最高的函数之一了。通过vlookup我们可以快速地进行核对数据,多个表格之间快速导入数据等函数功能。但vlookup函数有一个缺点,就是要求匹配列必须在查询列之后。如果匹配列在查询列之前,在使用vlookup之前我们需要将查询列移到匹配列之后。下面为大家介绍一种不需要变动原表结构就可以实现反向查询的方法:index+match函数有...原创 2020-03-13 11:11:07 · 2605 阅读 · 0 评论 -
excel利用公式取最后一行单元格内容
我们在数据处理中经常会涉及到去数据的前几行、后几行这样的操作。在excel中,取前几个单元格,我们可以直接写"=A1"这样的函数去取数。但是取最后一行的话,则不能写成"=Ax"这样类型的函数,因为若表格的行数变化了的话,会导致我们取到的就不是最后一行的数据了。大家可以通过函数"=INDIRECT("A"&COUNTA(A:A))"来取得最后一行的数据。结果如下:...原创 2019-11-19 11:28:11 · 24951 阅读 · 0 评论 -
Excel的Sumif、Sumifs求和结果错误
最近在利用excel的sumif函数求和时,发现结果大于真是结果。分析发现原因:sumifs的判断条件为数值型,但长度大于15位,excel会将长度大于15位的数字后面默认为0。例如下面的例子,若用账号1进行聚合求和,由于账号长度为16位,大于excel的数值最大位数15位。excel会将9919000000041035和9919000000041039都默认为9919000000041030...原创 2019-10-14 16:56:42 · 19672 阅读 · 1 评论 -
利用excel的lookup函数来数据分箱
我们在对数据进行统计时,经常会按照一定的标准将数据先分为若干类,然后统计每一类的数据的频率和占比。例如,我们需要统计不同分数段学生的人数。我们拿到的是每个学生的具体的分数,目的是统计不同分数段学生的人数。为了达到这个目的,我们先要将分数划分到指定的分数段,然后再统计每个分数段的人数。之前我是通过一连串的if语句将数据进行分箱,这样做的坏处有:1)代码较长,容易出错;2)风箱逻辑改变后不能复用。...原创 2019-08-08 17:32:30 · 8887 阅读 · 0 评论 -
mysql安装个人总结
最近换了新工作,帮部门同事处理一些数据分析的工作。拿到的数据是excel格式的,评估后觉得导入到数据库中做处理会方便一下,所以计划在本地安装MySQL。发现版本已经更新到8.0.16,记得上次安装还是在读书的时候,版本也是5.X.X。由于很久没有安装MySQL,安装差不多用了一个晚上,最后还是在同学的帮助下完成了安装。现将安装过程中需要注意的一些点记录下来,以便日后再次安装使用。1.下载地址:...原创 2019-06-06 09:46:52 · 947 阅读 · 0 评论 -
Mysql的字符串转日期
我们在对mysql的数据进行分析时,经常会遇到将业务意义为时间类型的变量定义为字符串的情况。如果我们需要按照时间维度进行分析的话,首先先要将字符串转换为时间类型。这里就需要使用Mysql的函数:STR_TO_DATE(str,format),其中,str为需要转换的字符串;format为str中时间的格式。注意:str中必须包含年月日,时分秒可以不包含。select STR_T...原创 2019-01-22 14:12:16 · 17922 阅读 · 4 评论 -
Sql中的DDL和DML
对于数据分析人员,我们对数据库的操作无非就是建表、修改表结构、修改表内容(增删改)、查询表内容这些操作。下面总结了这些操作的区别 DDL 数据定义语言(Data Definition Language) 不需要commit 对表格的定义进行修改 create table 创建表 alter table 修改表 drop table 删除表 truncate table...原创 2019-01-02 15:58:49 · 2388 阅读 · 0 评论 -
SQL左连接数据变少
前一段时间,同学写sql碰到一个问题:两段sql连接看似一样,但是条数却不一样。原因是在左连接之后的where条件对数据进行了筛选,使得数据变少了。两段sql如下:select count(1) from (select * from KXAPP.I_CASH_LOAN_WHITELIST_C2_V_NEW b where b.BG...原创 2018-10-24 22:36:11 · 13315 阅读 · 3 评论 -
Oracle计算分组分位数
我们在进行分析过程中,经常会有计算某个特征的分位数这个需求。下面为大家介绍如何在oracle计算某一列数据的分位数。需要求分位数的表结构如下:select * from test_lizhen; 我们发现该表有两列,一列是代表不同产品,一列是代表每个用户的属性。我们可以通过如下方法计算特征的分位数1)不分产品,计算全体用户的分位数select PERCENTI...原创 2018-09-11 09:54:26 · 12232 阅读 · 0 评论 -
Excel和csv的默认编码
我们用python进行数据分析之前,第一步就是将数据导入到python中。日常中最长用的应该就是excel和csv这两种文件格式了。对于数字类型,excel和csv的编码都是数值型;但对于字符串和汉字类型的单元格,excel的默认编码为unicode,csv的默认编码为str。具体见如下例子:...原创 2017-09-15 18:19:13 · 24681 阅读 · 0 评论 -
Oracle报错:ORA-01830:日期格式图片在转换整个输入字符串之前结束
最近在用Oracle写存储过程的过程中,报了如下的错误。在网上查了资料,说是错误应该是在使用to_date()这个函数时发生的。而自己的存储过程确实也使用了这个函数。但是还是不知道具体的原因。在BI同事的帮助下,找到了错误的原因。排错的sql如下:declare l_data_build_time varchar2(40); l_data_build_time_d dat...原创 2018-07-26 15:58:33 · 8316 阅读 · 0 评论 -
Mysql按日、周、月进行分组统计
我们在用Mysql抽取数据时候,经常需要按照天、周、月等不同的粒度对数据进行分组统计。而我们的时间可能是“2017/12/5 0:0:0”这种准确的时间。所以在进行分组之前我们需要对时间进行一下处理。DATE_FORMAT是MySQL内置的一个函数,作用是以不同的格式显示日期/时间数据。具体的语法如下:DATE_FORMAT(date,format),其中date:合法的日...原创 2017-12-05 18:07:31 · 79893 阅读 · 3 评论