随笔分类 -  SQL开发

SQL编程,数据库管理经验
摘要:资金对账系统的设计思考 参考文章: 美团配送资金安全治理之对账体系建设 资金安全是公司业务稳定运行的核心方面之一,风险容忍度极低,实施上任何公司都希望全年资金运营风险事件为零。一个稳定可靠的清结算系统是资金安全的前提,一个严谨、健全、灵活的对账系统是保障。本文主要对资金对账系统进行总结探讨。 对账系 阅读全文
posted @ 2021-06-19 23:47 hawking8su 阅读(293) 评论(0) 推荐(0)
摘要:Hive行转列和列转行 行转列(一行变多行) 方法1:简单粗暴 union all --不推荐 优点:好理解 缺点:多次select同一张表,造成计算量成倍增加;代码冗余,单个select条件复杂后会变得较难维护。 -- concat('height',':',height,',','weight' 阅读全文
posted @ 2021-05-30 12:17 hawking8su 阅读(1466) 评论(0) 推荐(0)
摘要:HiveSQL优化的根本思想: 尽早尽量过滤数据,减少每个阶段的数据量 减少job数 解决数据倾斜问题 Hive SQL优化方式及使用技巧 https://www.cnblogs.com/fnlingnzb-learner/p/13087976.html Hive SQL的编译过程 https:// 阅读全文
posted @ 2021-05-14 14:35 hawking8su 阅读(69) 评论(0) 推荐(0)
摘要:环境:MYSQL 问题描述:表A和表B关联,关联字段有cat1、cat2、cat3三个维度;表A是配置表,三个字段肯定有值,表B是事实表,三个字段不一定都有值,但是如果cat2有,则cat1肯定有,以此类推; 需求:将表A和表B关联,如果表B的cat3为空,则用cat1和cat2字段关联,如果cat 阅读全文
posted @ 2021-04-30 14:50 hawking8su 阅读(2754) 评论(0) 推荐(0)
摘要:FULL (OUTER) JOIN -- sqlserver,oracle,hive写法 select * from t1 full join t2 on t1.id = t2.id; -- mysql 没有 full outer join: 用left join + right join + un 阅读全文
posted @ 2021-04-23 15:01 hawking8su 阅读(524) 评论(0) 推荐(0)
摘要:SqlServer技巧:数据展开与合并 说明:如何用一句sql实现数据展开(一行变多行)与合并(多行变一行) -- 数据准备 CREATE TABLE TB_TEST02 ( ID INT NOT NULL, VAL VARCHAR(200), ) TRUNCATE TABLE TB_TEST02 阅读全文
posted @ 2021-04-13 13:20 hawking8su 阅读(475) 评论(0) 推荐(0)
摘要:-- 数据准备 CREATE TABLE work( id int, name nvarchar(100), work nvarchar(100) ) insert into work values('1','张','经理') insert into work values('2','张','开发人 阅读全文
posted @ 2021-04-13 12:58 hawking8su 阅读(2414) 评论(0) 推荐(0)
摘要:--数据准备--表值函数 dbo.SplitString:按照分隔符将文本转换为表 declare @str1 varchar(max) set @str1 = '7,8,9' SELECT * FROM dbo.SplitString(@str1,',',1) --示例:某表有Col1,Col2两 阅读全文
posted @ 2021-04-13 12:03 hawking8su 阅读(151) 评论(0) 推荐(0)
摘要:现有一个含三个字段的用户表,id/email/mobile, id是自动递增的,不具有重复性。当email和mobile有一个重复时即认为是同一个user, 请用一种方法查询表中实际有几个user? --样例数据 CREATE TABLE tb_test( id int , email varcha 阅读全文
posted @ 2021-04-09 21:17 hawking8su 阅读(178) 评论(0) 推荐(0)
摘要:LIKE中和如何匹配通配符本身 LIKE中使用%和_作为通配符是常用操作,但是如果想要文本中的%和_怎么办? 解决:在前面加上\ 即可 -- 验证匹配文本中的_ SELECT case when 'event_sadfad' like '%\_%' then 1 else 0 end -- retu 阅读全文
posted @ 2021-04-09 12:17 hawking8su 阅读(176) 评论(0) 推荐(0)
摘要:SQLSERVER表值函数--将字符串按分隔符拆分成表 输入: 字符串 = 'DADA,RERDE,FRED' 输出: 表: 实现函数代码: -- 已下两种函数可任选一个 -- 函数写法1: CREATE FUNCTION [dbo].[SplitTextToTable] ( @SplitStrin 阅读全文
posted @ 2021-02-06 17:32 hawking8su 阅读(430) 评论(0) 推荐(0)
摘要:ROC曲线的SQL实现 ROC曲线含义参考: ROC曲线简介 机器学习基础(1)- ROC曲线理解 题目: 表1: PREDICTION OBSERVE_VALUE 0.95 1 0.82 0 0.7 1 0.88 1 0.6 0 上表1第一列是预测值,第二列是观测值,如果预测值>=0.8判定为正, 阅读全文
posted @ 2021-01-31 17:52 hawking8su 阅读(177) 评论(0) 推荐(0)
摘要:字段类型互转 字符串转DATETIME类 -- 将时间字符串转换为DATETIME类 -- 基础: 20210101 =>输出:2021-01-01 00:00:00.000 SELECT CONVERT(DATETIME, '20210101') SELECT CONVERT(DATETIME, 阅读全文
posted @ 2021-01-28 19:27 hawking8su 阅读(186) 评论(0) 推荐(0)
摘要:目标:自动拼出建表语句,并且把字段注释自动放在字段定义后,方便脚本沟通。 方法:运用系统表来拼出SQL -- 涉及系统表: -- DBA_COL_COMMENTS 字段注释 -- DBA_TAB_COLUMNS 字段定义 -- 拼字段定义 SELECT A.COLUMN_NAME||' '||A.D 阅读全文
posted @ 2021-01-26 18:55 hawking8su 阅读(186) 评论(0) 推荐(0)
摘要:bcp命令可以在CMD 或 SQLSERVER中调用,这里适用SQLSERVER中调用的情况。 BCP命令参数 首先要开启xp_cmdshell -- 允许配置高级选项 EXEC master.sys.sp_configure 'show advanced options', 1 -- 重新配置 R 阅读全文
posted @ 2021-01-26 18:52 hawking8su 阅读(2337) 评论(0) 推荐(0)