SQL
罗少说
这个作者很懒,什么都没留下…
展开
-
开窗函数分享
开窗函数精要分析和对比原创 2023-06-26 10:12:04 · 248 阅读 · 0 评论 -
大数据之hive——元数据初始化
元数据初始化命令:schematool -dbType mysql -initSchema控制台日志SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/home/sweet/software/apache-hive-2.3.6-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.cla原创 2021-03-03 17:44:39 · 8179 阅读 · 14 评论 -
hive添加字段
hive (test)> alter table lx add columns(id string);OKTime taken: 0.25 secondshive (test)> alter table lx add columns(name string,xb string);OKTime taken: 0.197 seconds原创 2021-02-24 17:06:27 · 1053 阅读 · 0 评论 -
hive与mysql对比之max、group by、日志分析
前期准备mysql模型:test_max_date(id int,name varchar(255),num int,date date)hive模型:create table test_date_max(id int,name string,rq Date);insert into table test_date_max values(1,"1","2020-12-25"),(2,"1","2020-12-28"),(3,"2","2020-12-25"),(4,"2","2.原创 2021-02-04 13:16:52 · 2351 阅读 · 0 评论 -
mysql运算符——算术运算符、比较运算符、逻辑运算符、位运算符
mysql运算符,分为几类:算术运算符 比较运算符 逻辑运算符 位运算符算术运算符注意:在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL比较运算符SELECT 语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。比较结果为真,则返回 1,为假则返回 0,比较结果不确定则返回 NULL。使用分类:用于比较数字类型的是大于、小于 用于等式判断是等于号、不等于号 用于字符串范围是in、n...原创 2021-02-01 11:35:26 · 465 阅读 · 0 评论 -
sql标准
SQL99语法标准select 查询列表from 表1 别名【连接类型】 join 表2 别名on 连接条件【where 筛选条件】【group by 分组条件】【having 筛选条件】【order by 排序条件】SQL99:是操作所有关系型数据库的规则 是第四代语言 是一种结构化查询语言 只需发出合法合理的命令,就有对应的结果展示SQL92/SQL99标准的四大分类:DML 数据操纵语言:select,insert,update,dele..原创 2021-02-01 11:13:17 · 1775 阅读 · 0 评论 -
hive中浮点型数据计算精度丢失
举例:无限小数保留几位说明:hive中round函数用于保留小数位,最后一位四舍五入结果:double类型计算结果精度丢失原因:round函数返回值是保留几位小数的double类型,虽然是保留几位,但浮点型的长度还在,所以二次计算时就会发生精度丢失解决办法:将round函数返回值强转成decimal扩展:hive函数值返回值是浮点型的,发生精度丢失时,可以采取类似办法测试过程如下:...原创 2021-01-25 10:28:13 · 4025 阅读 · 0 评论 -
hive中如何实现13位时间戳转毫秒时间类型
正确执行sql如下:select concat(t,".",substring(1611231717343,11,13))from(select from_unixtime(cast(substring(1611231717343,0,10) as bigint),'yyyy-MM-dd HH:dd:ss') as t)tmp;执行结果如下:扩展:如果想转换成"yyyy-MM-dd HH:dd:ss",需要将13位时间戳转换成11位时间戳,注意转换过程中函数入参数据类型原创 2021-01-22 16:28:57 · 4122 阅读 · 1 评论 -
大数据Hive之group by、count、over
group by和count在Hive与mysql用法基本一致,今天说一下group by、count组合用法在hive中的需要注意的地方,以及实现一个功能的sql写法目标:统计表中id和总条数模型:tab(id string)输出:id、count(*)需求1:输出表中总记录数select count(*) from tab;需求2:输出表中id,总条数select id,count(*) from tab;这样计算就会报错解决方式两...原创 2021-01-05 15:37:46 · 2363 阅读 · 0 评论 -
hive——lag函数使用
环境hive2.x主要内容lag函数应用场景对某个字段排序,对排序后的结果计算相邻行的差值模型diff_age(id string,age int)("1",10)("2",30)("3",100)中间过程测试#求相邻id年龄插值selectid,age,lag(age,1,0) over(order by age) as syhfrom diff_age;-- 结果是全部是Nullselectid,age,l.原创 2020-12-15 15:32:15 · 14616 阅读 · 1 评论 -
hive之over开窗中的统计count与group by用法
话不多说,看代码需求是:分组统计传统分组统计sql,在Mysql和hive中是通用的模型create table tab(id string,part string)统计每个part有多少个id先说一下标准写法select count(*)from tabgroup by part;下面看一下over开窗写法和问题写法一:select part, count(*) over(partition by part)from ...原创 2020-11-09 11:11:35 · 2628 阅读 · 1 评论 -
hive之拉链表实现过程及剖析
1、创建拉链表create external if exists dwd_user_info( `id` string COMMENT '用户id', `name` string COMMENT '姓名', `start_date` string COMMENT '开始日期', `end_date` string COMMENT '结束日期')COMMENT '用户信息拉链表'2、初始化拉链表(导入2020-11-08数据)insert overwrite tabl...原创 2020-11-09 00:17:38 · 3240 阅读 · 0 评论 -
hive逻辑运算符中的坑——or、and
逻辑计算where a != "" or a is not null and b != "6"查询结果284where (a != "" or a is not null) and b != "6"查询结果219原创 2020-11-06 17:56:42 · 1928 阅读 · 1 评论 -
hive、mysql中case when 出现null值
记录一次实战:在hive计算年龄时,case when转换出现了null值case when 转换出现了null值的原因就是没有匹配上,实际上case when 是一个函数,是一个udf函数,一进一出,除了Null时是没有给定默认值,有时给了else ,也会出现 else值其他以外的情况,给后来人提醒,如果出现这种问题,一定要检查当前case when from的表,再就是子查询情况和写入并不对等,基本出现这种情况就是类型异常...原创 2020-11-06 17:09:34 · 2728 阅读 · 0 评论 -
mysql通用精确计算年龄方式
表中数据结果数据sql语句SELECT id, NAME, rq, IF(DATEDIFF(CURRENT_DATE,CONCAT(DATE_FORMAT(CURRENT_DATE,"%Y"),"-",DATE_FORMAT(rq,"%m-%d")))>=0, DATE_FORMAT(CURRENT_DATE,"%Y") - DATE_FORMAT(rq,"%Y"), DATE_FORMAT(CURRENT_DATE,"%Y") - DATE_FORMAT(rq,"原创 2020-10-19 20:11:24 · 2158 阅读 · 0 评论 -
mysql统计及行列转行
小知识:行转列 case when原理:case when作为新表中的某一列,对原表每一行筛选字段列转行:join原理:查询的结果先做笛卡尔积再on再where,扩充列mysql行转列测试当前日期mysql:curdate()hive:current_date()mysql with as 5.7版本不行 8.0可以数据源表模型数据结果表模型student表中数据如下:行列转换在指标统计中很常见,下面给出了示例,复杂的多表查询...原创 2020-10-09 11:13:00 · 849 阅读 · 0 评论 -
FlinkSQL建表语句与插入语句
FlinkSQL来构建实时数仓,其思路大概如下:Flink的Table API提供了对kafka/jdbc/hbase等实时开发涉及到的组件的支持,以kafka为例,将kafka topic抽象成Flink Table,如下:FlinkSQL读数据建表语句CREATE TABLE flink_rtdw.demo.kafka_source_table ( topic STRING, bidWord STRING, planID STRING, eventTime INTEGER,...原创 2020-10-09 10:38:10 · 6542 阅读 · 0 评论