SQL
永远在减肥永远110的的小潘
这个作者很懒,什么都没留下…
展开
-
HIVE SQL中替换不可见字符的正则表达式
正则进行替换后,仍旧出现字符串中存在不可见字符的情况。这往往是因为上有数据在解析过程中未将无法解析的非法字符剔除掉。表示匹配任何空白字符,包括空格、制表符、换页符等等, 等价于[ \f\n\r\t\v]。这个时候通常会使用正则表达式来替换字符串中的空白字符。函数,但是他们无法去除字符串中间的空格。对于剔除字符串首尾的空格,使用较多的是。在实际清洗过程中,发现即使使用了。进一步对不可见字符进行处理。原创 2023-07-17 14:48:36 · 2086 阅读 · 0 评论 -
HIVE SQL计算一组值的中位数
hive sql两种方式求百分位数原创 2022-11-02 00:19:55 · 2383 阅读 · 1 评论 -
HIVE SQL使用regexp_replace正则替换敏感身份证信息
hql 使用正则替换敏感身份证号信息原创 2022-08-22 23:40:53 · 1945 阅读 · 0 评论 -
HIVE SQL中CASE WHEN不支持子查询的解决方法
HIVE SQL CASE WHEN不支持where 子查询的解决方式原创 2022-07-18 23:49:40 · 3079 阅读 · 0 评论 -
HIVE SQL DDL&DML语句实例
目录更改列的数据类型更改列的数据类型#将class列数据类型更改为stringalter table student.classchange class class string;原创 2022-03-10 13:22:05 · 2166 阅读 · 0 评论 -
Python Pandas连接Mysql数据库并向表中新增行记录及查询记录
from sqlalchemy import create_engineimport pymysqlengine=create_engine(r"mysql+pymysql://root:123456@110.110.110.36:3301/database_name")#root:123456@110.110.110.36:3301/database_name 用户名:密码@ip地址:端口号/表名称data_sale.to_sql('table_name_1',engine,if_exists=原创 2022-01-26 16:35:43 · 2056 阅读 · 0 评论 -
Mysql-按照指定的约束新建一张表
建表要求如下:create table user_info_vip(id int(11) NOT NULL AUTO_INCREMENT COMMENT "自增ID",uid int(11) NOT NULL COMMENT "用户ID",nick_name varchar(64) COMMENT "昵称",achievement int(11) default 0 COMMENT "成就值",level int(11) COMMENT "用户等级",job varchar(32) COM原创 2021-12-16 17:05:23 · 362 阅读 · 0 评论 -
Mysql-计算两个时间之间的差值
计算两个时间之间的差值1.datediff()计算date差值2.timediff()计算时分秒差值3.timestampdiff()计算指定维度的时间差值1.datediff()计算date差值语法:datediff(end_time,start_time),返回end_time-start_time的日期差值select datediff('2020-01-04 22:11:12','2020-01-02 23:11:12') from dual返回值:22.timediff()计算时分秒差原创 2021-12-16 15:42:37 · 14148 阅读 · 0 评论 -
Mysql-replace into与insert into的区别
1.insert into用于向表中插入行记录#向examination_info表中插入一行记录,此处如果表中已有key为9003的记录,该插入操作将执行失败insert into examination_info values(null,9003,'SQL','hard',90,'2021-01-01 00:00:00')2.replace into用于向表中带更新地插入(replace into 检测到主键或唯一性索引键重复就删除原记录后重新插入)法一:#无论表中是否已有有key为原创 2021-12-16 13:54:02 · 899 阅读 · 0 评论 -
Mysql-date_format()各参数实例
1."%Y/%M/%D"select date_format("2021/9/1 22:11:12","%Y/%M/%D") from dual输出:2021/September/1st2."%y/%m/%d"select date_format("2021/9/1 22:11:12","%y/%m/%d") from dual输出:21/09/013."%H:%i:%s"select date_format("2021/9/1 22:11:12","%H:%i:%s") from dua原创 2021-12-16 12:02:37 · 873 阅读 · 0 评论 -
Mysql-使用avg()与if()函数计算正确率
计算上表中不同难度的题目答题准确率。selectq.difficult_level,avg(if(q.result="right",1,0)) correct_rate#此处平均值计算结果=正确的题目数量/总答题数量from question_detail qgroup by q.difficult_level原创 2021-12-16 11:14:14 · 2579 阅读 · 2 评论 -
Mysql-使用row_number() over()函数求每组的最低分
之前我写过不用函数求分组后每组销量前两名的方法,可以参考这一篇。这种方式会稍微复杂一些。Mysql-group by分组后取每组销量前两名刷牛客网后,发现可以使用row_number() over()函数快速查出每组的最低分。select device_id,university,gpafrom (select *,row_number() over (partition by university order by gpa) as rnfrom user_profile) as univ原创 2021-11-05 18:27:35 · 480 阅读 · 0 评论 -
Mysql-统计用户的次日留存率
刷牛客网上遇到的一题,看了讨论区的内容,现在把自己的理解记录下来。题目要求:解题思路:1.一个用户可能一天内存在多次答题记录,以device_id,date去重select distinct q.device_id,q.datefrom question_practice_detail q2.单个用户的次日留存率假设某用户11月1日答完题后,11月2日继续登录答题,11月3日也继续登录答题。那一共可以查到3条该用户的去重记录,其中11月2日、11月3日均是次日留存记录,这里我们的次日留原创 2021-11-03 23:23:24 · 1680 阅读 · 1 评论 -
Mysql-字符串分列后取指定位置的值
如何取出上表中的性别?首先我们想到用substring_index()来进行分列#错误示例substring_index(profile,",",4)#最后取出的不是我们想要的性别,而是整个profile字段,参数4代表从左往右前4个分列的值#正确示例substring_index(profile,",",-1)#最后参数-1,代表从右往左数第一个分列的值...原创 2021-11-03 22:58:17 · 279 阅读 · 0 评论 -
Msql-构造当日同比日期
##当期销售金额selectSUM(ls.sale_amount) from test_sale_amount lswhere ls.order_date>="2021/11/1"and ls.order_date<=CURDATE()##同比期销售金额select SUM(ls.sale_amount) from test_sale_amount lswhere ls.order_date>="2020/11/1"and ls.order_date<=c原创 2021-11-03 15:55:58 · 86 阅读 · 0 评论 -
SQL中delete、truncate、drop三者的区别
delete、truncate、drop均是数据库中删除指令。delete为数据操作语言,truncate及drop为数据定义语言。有关什么是数据操作语言和数据定义语言的解释可参见SQL中数据操作语言DML与数据定义语言DDL1、DELETEDELETE用于删除数据库中行记录,语法如下:delete from 表名称 where 列名称=某值DELETE也可用于删除整个表记录,语法如下:delete * from 表名称DELETE仅删除表中的数据内容,保留表定义,即保留表结构、属性及索引。原创 2020-07-12 23:48:22 · 1031 阅读 · 0 评论 -
SQL中数据操作语言DML与数据定义语言DDL
SQL主要可以分为两大部分,数据操作语言DML和数据定义语言DDL。DDL定义数据库的基本结构、属性以及索引,DML在此基础上对数据库进行编辑操作。1、DML主要包括增删改查指令。(1)SELECT 查询数据库中的数据select…from 表名称(2)UPDATE 更改数据库中的数据update 表名称 set 列名称=新值 where 列名称=谋值(3)DELETE 删除数据库中的行记录delete from 表名称 where 列名称=某值也可删除表中的全部记录:delete from原创 2020-07-12 23:20:26 · 307 阅读 · 0 评论