- 博客(37)
- 收藏
- 关注
原创 SQL Having用法
拿个业务场景说这个案例,比如我们有个表里面可能有批改过的数据,批改过得数据不会随着新批改的数据覆盖,而是逐条插入表中,如果想找出包含最早批改的数据和最新批改数据的话,那么我们就需要用到了havinng 用法,假设最开始的批单号是000,批单号是累加的。比如我们有个表 table 表里面有两个字段 订单号(order_no) 和 批单号(endorseq_no)
2024-12-12 11:00:36
417
原创 Kettle kitchen的使用
像我们编辑好了一个job之后,我们需要 给他部署导服务器里面或者需要使用kitchen来调度这个job,我们可以通过以下命令来进行操作,如下。上述代码中$1代表需要执行的job名称 $2代表需要传入的参数,参数后面的代表日志输出到的文件。这个传输参数的格式与linux环境的差异较大,如此即可解决问题了。windows环境下。
2024-07-25 11:30:06
430
原创 数据透视表
然后 进行行转列 sum( case when month(sales_date) = '1' then amount end) as 1月。这样就得到了,每个产品每个渠道,每个月份的销量,但是我们还缺少一个总量。首先我们先要给销售日期行专列,这就需要根据产品和渠道进行分组。假设我有一个表,里面有产品,渠道,销售日期,销量 字段。现在想要达到想excel里面数据透视表的功能。这就需要用到 rollup了。
2024-05-14 10:07:01
173
原创 PostGresql执行sql被锁住
如果出现执行sql被锁住的情况,说明有人在对表进行操作,导致没办法在操作同一张表,或是误操作对表进行了操作,可以使用如下sql查出造成锁住的线程,然后再杀线程就可以了。current_query:执行中的sql。1.PGSQL-查看sql正在运行的进程。start:进程开始时间。怎样停止正在执行的sql。
2023-10-26 16:12:09
323
原创 SQL-获取至少连续登录三天以上的用户
用户每天可能登录多次,现在的数据是进行过去重的,所以目前是用户每天只登陆一次的,首先我们要对用户进行分组,然后我们可以使用开窗函数对用户进行分区然后在对时间排序 连续登录就可以使用时间-行数 假如这个用户一直是连续的 那么相减的日期肯定是相等的。
2023-08-29 14:43:07
1585
2
原创 Oracle时间的计算
因为oracle没有datediff这样的函数,如果我们要计算两个日期之间的差值就不能通过datediff函数来进行运算,那么也可以通过to_number的方式来进行计算。例子:15年3月5日 12点12分31秒 与 15年3月2日 10点12分15秒 相差的小时。例子:计算12年一月一日与11年一月一日相差的天数。假如时间如果要细化到时间了那么道理是一样的。这样子就能很好的解决问题了。
2023-07-19 10:03:21
502
原创 connect by level
因为 level是从1开始递增的 所以假如第三行就应该是 190101 + 3 -1 这样就凑出来的日期才是190103。connect by level是属于oracle的一种语法,一般用来生成一些固定的连续递增的数字或者日期等。再举一个栗子,假如我要生成19年1月1日到22年12-31日的连续日期。栗子: 我想要生成[1-10]之间的连续生成的数字。这里为什么要对+level -1。
2023-07-18 17:06:25
389
原创 数据导出EXCEL,数字变成科学计数法问题
在我们导出数据的时候 很难避免不接触一下导出EXCEL格式给业务们看 但是在我们导出的时候,假如数字长度如果超过12位,自动的按照科学计数法显示数字。假如不想要通过科学技术法的方式进行显示,则需要是用到制表符。这样 子导出的时候 身份证号 会使用科学计数法显示出来。就需要使用如下制表符的方式进行数据导出。正常导出数据的SQL如下。但是我们想要他正常显示。
2023-06-06 15:59:55
2764
原创 oracle 去除数据治理之去除重复数据
我们可以对除了id外的其他字段进行分组 找出最小的sid然后删除代码如下。我们可以使用删除的方式进行删除(数据量不太大的情况下可以使用)假如数据量特别大的话 不建议使用删除的方法 因为会特别的耗时。首先 假如我们出现了问题数据 有很多值是一样的。可以看出 除了id外 我们存在一些重复的数据。比如 我们有一个 学生表 建表sql如下。此时可以采用复制表的策略。
2023-06-05 10:55:59
557
原创 行转列练习
这样 就分成了三组 然后1号老师在week列 2出险过两次 我们可以采取sum函数进行汇总 当 week = 2 的时候 赋给1 出现过两次 就sum 1 + 1 = 2。解析这些 首先 我们要对这个表划分一下粒度 老师是唯一的。首先创建一个表SQL 如下。根据老师id进行分组。
2023-06-05 10:32:47
78
原创 oracle 格式化日期
当日期格式为DD-MM-YY HH24:MI:SS.000 上午 这种格式的时候转成date类型的方法。使用最笨的方法进行截取字符串。
2023-04-04 10:12:38
711
原创 springboot 集成aop dubbo service无法注入的问题
springboot 集成aop dubbo service无法注入的问题
2022-08-29 18:42:01
646
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人