SQL
文章平均质量分 63
SQL相关
Sun_Sherry
这个作者很懒,什么都没留下…
展开
-
MySQL:触发器
触发器是一种特殊的与表事件相关的存储过程,其执行不是由程序调用,也不是手工启动,而是由事件触发。触发器经常用于加强数据的完整性约束和业务规则等。也可以用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。原创 2023-07-09 21:01:53 · 420 阅读 · 0 评论 -
如何解决Dbvisualizer连接Mysql8.0时的Unknown system variable ‘query_cache_size‘错误
使用Dbvisulaizer连接本地MySQL数据库时,按照以下配置进行数据库连接时报如下错误:Unknown system variable 'query_cache_size'。(MySQL版本:8.0.17,Dbisualizer版本:9.5.8)出现这个原因主要是因为Dbvisualizer中自带的MySQL的驱动版本较低。所以要去下载MySQL8.0.17对应的JDBC驱动,下载网址如下:https://dev.mysql.com/downloads/connector/j/将下载的.原创 2020-08-25 17:46:32 · 3438 阅读 · 3 评论 -
Hive中的窗口函数:lead()等函数与窗口函数over()一起使用时的问题
总体上Hive中的窗口函数用法和MySQL8.0中窗口函数的用法相似。这篇文章不再详细介绍Hive中的窗口函数用法,具体可以参考:MySQL中的窗口函数这里原创 2020-03-03 21:14:24 · 3100 阅读 · 0 评论 -
MySQL8.0中的日期类数据及其函数
1.日期类数据类型类型 ZERO值 有效值 其他 DATE '0000-00-00' ’1000-01-01’~‘9999-12-31’ 允许使用字符串或数字向date类型的列赋值 TIME '00:00:00' '-838:59:59'~'838:59:59' 即可以表示时间(小于24)或者表示两个时间点之间的时间间隔 DAT...原创 2019-11-13 13:50:42 · 4927 阅读 · 0 评论 -
MySQL中的interval和elt的使用
1.基础语法INTERVAL(N,N1,N2,N3,..........)如果N<N1,则返回0;如果N1<=N<N2,则返回1,以此类推,如果N为NULL,则返回-1。N1、N2、N3依次递增。ELT(N,str1,str2,str3,...)如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()...原创 2019-11-04 18:10:31 · 4247 阅读 · 0 评论 -
使用HiveQL计算PSI(Population Stability Index)
1.群体稳定性指标群体稳定性指标(Population Stability Index,PSI),通常用于检验模型及数据分布的稳定性。其计算公式如下:psi = sum((实际占比-预期占比)* ln(实际占比/预期占比))2.HiveQL计算PSI以下PSI计算公式主要是为了计算一些模型中的各个指标的稳定性,其主要解决了利用当天的标签分布和上一个有效日期(比如:有数据)的标签的稳...原创 2018-07-30 19:40:14 · 3494 阅读 · 0 评论 -
HiveQL--随机生成日期
随机生成从某年某月某日到某年某月某日的日期例如随机生成从‘2017-05-01’到‘2018-05-31’的日期,可以使用如下Hive Sql语句:select id_card_no,card_name,date_add('2017-05-01',cast(rand()*396 as int)) as back_timefrom shabi.testgroup by id_card_...原创 2018-07-09 16:56:46 · 2810 阅读 · 0 评论 -
Hive中的join操作
1.Reduce Join操作Reduce Join,也叫Common Join、Shuffle Join。Reduce操作就是在Reduce阶段完成Join操作,该操作包括一个完成的MapRedue过程,即需要经历Map阶段、Shuffle阶段、Reduce阶段。Map阶段:该阶段输出的时候以Join On 条件中的列为key,如果Join On中涉及到多个键,则以这些关联键的组合为ke...原创 2019-04-24 22:14:37 · 615 阅读 · 0 评论 -
MySQL8.0-Load data报错
前提:win10系统,MySQL8.0.17(下载的zip包直接解压的,所以没有my.ini文件)1.Load Data报错首先在MySQL命令行下创建一个新表并通过load data命令将本地文件导入到新建的表中时,mysql提示如下错误:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv...原创 2019-08-21 17:17:41 · 4416 阅读 · 2 评论 -
MySQL中没有group by子句时的聚集函数
首先从一个无意中运行的例子讲起。数据表结构及数据如下(建表语句及插入语句就不提供了)。看下面一段SQL语句及运行结果:从这个结果我们可以发现两件事情。第一,这条查询语句中没有group by子句,select子句中的非聚合字段没有出现在groupby子句中,这与我们一贯的认知不同。类似语法的SQL查询语句在hive中是报错的(在MySQL也有可能报错,后面会详细说)。第二,这从...原创 2019-10-17 16:50:24 · 2181 阅读 · 0 评论 -
SQL中分组排序函数row_number()和group by子句连用
MySQL8.0中加入了row_number()等窗口函数。以row_number()为例,该函数本身的作用就是对数据进行分组排序(分组依据在over()中)。而group by子句的功能也是先将数据机分组之后再进行计算。今天主要来看看分组排序函数和group by子句连用时是如何计算的。...原创 2019-10-18 12:28:34 · 16540 阅读 · 3 评论 -
MySQL8.0中的窗口函数
在以前的MySQL版本中是没有窗口函数的,直到MySQL8.0才引入了窗口函数。窗口函数是对查询中的每一条记录执行一个计算,并且这个计算结果是用与该条记录相关的多条记录得到的。1.窗口函数与聚合函数窗口函数与聚合函数很像,他们都是在一组记录而不是整张表上执行的。但是,一个聚合函数在一组记录执行后只返回一条结果而窗口函却会对改分组内的每行记录都返回一个结果。2.常见的窗口函数MySQ...原创 2019-10-26 21:34:12 · 3249 阅读 · 2 评论