数据库开发
文章平均质量分 68
tulinying
我希望自己把日子过得充实一些。
展开
-
被忽视的数据字典
# 一、写在前笔者认为借用关系型数据库的数据字典,可以做不少有意思的事情,解决一些工作中遇到的问题,做一些半自动化、自动化的工作时可以使用到它们。笔者也认为大多数人并未重视过它们,或者深挖过它们的一些好处。# 二、数据字典的一些概念这段比较乏味,解释一些概念,主要还是拷贝自百度百科。> 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。简而言之,数据字典是描述数据的信息集合,是对系统中原创 2021-07-05 22:38:48 · 227 阅读 · 0 评论 -
巧用Oracle的BITAND函数
文章目录一、函数介绍二、应用场景三、相关设计方案3.1 设计示例13.2 设计示例2四、数据使用方案五、总结一、函数介绍返回两个数值型数值在按位进行 AND 运算后的结果。语法BITAND(nExpression1, nExpression2)举例-- 以下返回结果分别为1,0,4-- 分析,如BITAND(12,4),将两个入参二进制化,即1100与100,进行位与操作结果为100,转化为十进制即为4SELECT BITAND(3,1),BITAND(11,4),BITAND(12,4)原创 2021-01-04 10:08:08 · 1980 阅读 · 0 评论 -
Oracle分析函数
文章目录一、背景二、创建测试数据2.1 测试数据创建脚本2.2 测试数据详情三、相关需求及SQL示例3.1 统计当季总处置金额3.2 统计当季初至当月累计处置金额3.3 统计每月与上月的变动额四、其它参考资料五、我的学习心得一、背景分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。在本文,我会通过几个小需求,介绍一些分析函数的用法,以及我的一些学习心得。对于函数更详尽的用法,可参考本文第四点。原创 2021-01-04 10:05:22 · 196 阅读 · 0 评论 -
谈谈关于枚举类型数据的数据治理
文章目录一、背景二、治理方案三、其它四、数据工作经验分享五、补充一、背景不知道大家在IT系统建设过程中,有没有遇到过类似情况。流量明细表,有一个字段是流量入口。这个字段的枚举类型曾经为:00表示app启动弹框,01表示顶部banner,02表示中通广告位。后来这个月重新发版之后,新增了枚举——03表示筛搜广告位。我们有一张流量统计报表,该报表可能有以下字段,流量入口中文名称、入口点击pv、入口点击uv……在写这个报表可能会有类似的sql:selectcase when utm_source='0原创 2021-01-04 09:57:03 · 534 阅读 · 1 评论 -
数据RD系列-求历史节点访问列表
文章目录一、背景二、解决方案2.1 数据创建模拟脚本2.2 数据需求方案脚本2.3 需注意的几个点一、背景需求如下:有一张表,暂且称之为“用户访问节点表”(为节省篇幅,下文简称该表为visited表),表字段及数据示例如下:username用户old_city原城市new_city新城市dt发生日期zhangsanAB20200101zhangsanBC20200201zhangsanCA20200301比如dt=20200101这条数据,原创 2021-01-04 09:51:01 · 224 阅读 · 0 评论 -
数据RD系列-巧用1=1的连接条件搞事情
文章目录一、背景二、解决方案2.1 解决方案相关脚本2.2 需注意的几个点一、背景需求如下:整理出一大段SQL语句,比如形成2020年1月份的一段SQL。insert into table1(data_date) select '20200101' from dual;insert into table2(data_date) select '20200101' from dual;insert into table1(data_date) select '20200102' from dual原创 2021-01-04 09:33:31 · 489 阅读 · 1 评论 -
MySQL的DENSE_RANK有关的一道SQL需求
1 需求背景遇到一个需求是这样的,对学生的成绩进行排名,成绩为0的,排名值为null。成绩大于0的,如,3、3、2、1,排序出来为1、1、2、3。如图 这就是一个dense rank的需求,另外比较麻烦的是要处理成绩为0的情况。2 解决方案解决方案如图: 3 相关脚本drop table myt;create table myt as select 3 scoreunion原创 2017-09-17 17:21:25 · 3764 阅读 · 0 评论 -
pandas or sql计算前后两行数据间的增值
遇到这样一个需求,有一张表,要给这张表新增一个字段delta,delta的值等于每行的c1列的值减去上一行c1列的值。 我的解决方案,可以通过python的pandas的diff来实现,也可以通过sql来实现,如下import pandas as pdsrcTable = pd.read_csv('pos1.csv')print(srcTable)destTable = srcTable.lo原创 2017-07-19 14:44:25 · 4512 阅读 · 1 评论 -
MYSQL大小写及校验集有关的一些知识整理
参数lower_case_file_systemmysql校验集collattion让查询字符串时大小写敏感的方法校验集中的unicode与general区别原创 2017-06-30 11:51:13 · 1340 阅读 · 0 评论 -
无唯一性字段情况下,双表关联更新数据方案
需求是:公司早先在另一个数据源D1整合了一套数据到项目中,如下文player数据,现又在新数据D2采集了一套新数据,想用D2的数据值更新公司现项目,要保留现项目的表id。项目中的数据id用的是数据源D1的,针对player表,如下图,D1、D2该表均无唯一性标注字段,只能通过姓名勉强匹配。D1、D2中均有2条梅西的数据,实际上需将D2中id为3的数据更新到D1中id为1的梅西数据。原创 2016-03-24 22:45:50 · 3753 阅读 · 0 评论 -
SQL语句中位与选择项的使用
有这么一张表enroll,表示学生的选课情况,学生2选的课程是JAVA、PYTHON,学生1选的课程是JAVA、PYTHON、C,学生2选的课都被学生1选了,就打印出(2,1),本例中符合答案的还有(3,1),用一条SQL把结果打印出来。答案是(2,1)(3,1)下面是我的解题过程和思路:我们先定义数据选择项。把JAVA、PHTHON、C原创 2014-05-12 23:55:06 · 1175 阅读 · 1 评论