SQL
文章平均质量分 57
SYBY
这个作者很懒,什么都没留下…
展开
-
sql窗口函数的作用、分类与使用
LAST_VALUE()的括号中需要填写一个表中存在的字段。举个栗子:计算得出部门id为50或60且薪资大于5000的员工,且得出部门中薪资最多的一个人。RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS '部门中薪资最多的一个人' FROM employees WHERE salary > 5000 AND department_id IN('60' , '50');原创 2022-11-03 22:16:00 · 718 阅读 · 1 评论 -
hive的删库、表和装载数据
①:为了保证HDFS上有文件地址,首先mkdir文件地址,加-p可以创建多级目录。判断数据库是否存在,存在了删除。如果数据库不为空,强制删除加上cascade。最后,加载HDFS上的数据到表中,或者加载HDFS上的数据覆盖到表中数据。将数据上传到HDFS上后,导入hive表的操作。判断表是否存在,存在了删除表以及表结构。判断表是否存在,存了,即删除表的数据。序列化和反序列化根据自己需求设置。其次,上传文件到HDFS上。...原创 2022-08-31 17:25:40 · 850 阅读 · 0 评论 -
SQL第二高的薪水,ifnull的使用
题目来源:LeetCode编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。1、题目分析获取第二高的薪水,需要涉及去重distinct,排序order by和limit限制结果个数select distinct salary from Employee order by salary desc limit 1,1)但题目中还要求,若不存在第二高的薪水,返回Null,则需要使用ifnull(, null)判断ifnul原创 2022-05-21 11:38:08 · 272 阅读 · 0 评论 -
SQL按日期分组销售产品,使用group_concat和separator
题目来源:LeetCode编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。每个日期的销售产品名称应按词典序排列,并用逗号隔开。返回按 sell_date 排序的结果表。1:题目分析①根据”按 sell_date 排序的结果表“,以及”查找每个日期、销售的不同产品的数量及其名称“,可以判断出需要对sell_date进行分组与排序,同时需要计算每个销售不同产品的数量。select sell_date, count(distinct product) as num_sold,p原创 2022-05-20 22:03:15 · 1764 阅读 · 1 评论 -
SQL计算特殊奖金,使用case-when-then-end和mod(a,b))
题目来源:LeetCode写出一个SQL 查询语句,计算每个雇员的奖金。如果一个雇员的id是奇数并且他的名字不是以’M’开头,那么他的奖金是他工资的100%,否则奖金为0。1、题目分析①:看到是什么,否则是什么,想到SQL的分支结构语句如:if 表达式1 then 操作1elseif 表达式2 then 操作2else 操作3end ifcase 表达式when 值1 then 结果1(语句1;)when 值2 then 结果2(语句2;)else 结果3(语句3;)end②原创 2022-05-19 13:07:10 · 554 阅读 · 1 评论 -
Hive的排序语句
Hive的全局排序(Order By)1、在Hive中使用Order By的话,reduce的个数始终默认为1,无法通过set mapreduce.job.reduces=num;来设置reduce的个数,并且排序速度较慢。Hive的分区排序1、当有大规模数据集,且不强制要求全局排序,以及数据分区排序规则时,可以只使用Sort By关键词。通过设置reduce的个数为num:set mapreduce.job.reduces=num;再通过Sort By,在每个reducer内产生一个排原创 2022-05-12 15:18:17 · 461 阅读 · 0 评论 -
Hive的数据导入、导出
1.数据的导入1.1装载数据向表中装载数据load data [local] inpath '/opt/module/datas/test.txt' [overwrite] | into table 具体表 [partition (partcol1=val1,…)];local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表overwrite:表示覆盖表中已有数据,否则表示追加into table:表示加载到哪张表加载HDFS文件到hive中,需要先将文件上传到HDFS中原创 2022-04-06 20:45:23 · 1653 阅读 · 0 评论 -
Hive本质、外部表、分区表优点与DDL语句
1、什么是Hive?Hive是基于Hadoop的一个数据仓库工具,将结构化的数据文件映射为一张表,提供与SQL类似的查询功能。1.1本质将HQL转换成MR程序Hive处理的数据存储在HDFS上,分析数据由MR实现,执行程序在YARN上。优点:适合处理对实时性要求不高的大数据。缺点:不适合迭代算法、数据挖掘。1.2Hive框架的驱动器具有哪些?(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树(AST),这一步一般都用第三方工具库完成,比如antlr;对AST进行语法分析,比原创 2022-04-06 14:52:34 · 2424 阅读 · 0 评论 -
SQL的约束作用,创建与删除
为提高检索效率,如非查过全部列,最好使用select *。1.约束概述1.1 为什么需要约束?什么是约束?1)为了保证数据的完整性,防止错误和无效信息的输入输出。2)约束是对表中字段的强制规定。1.2 约束的分类:角度1:约束的字段的个数单列约束 vs 多列约束角度2:约束的作用范围列级约束:声明此约束声明在对应字段的后面表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束角度3:约束的作用或功能① not null (非空约束)② UNIQUE 唯一约束,用来限制某个字段原创 2022-04-01 11:54:38 · 5974 阅读 · 0 评论 -
SQL的执行顺序以及ON、WHERE、HAVING的区别
1、SQL99语句完整结构:SELECT...,...,...(存在聚合函数)FROM...(LEFT / RIGHT)JOIN ...ON 多表的连接条件(LEFT / RIGHT)JOIN ...ONWHERE ...(WHERE子句不能使用聚合函数)GROUP BY ...,...HAVING (HAVING子句可以包含聚合函数的过滤条件也可以不包含)ORDER BY ...,...(ASC / DESC)LIMIT ...,...;2、SQL语句的执行顺序FROM …,…-&g原创 2022-03-29 16:42:26 · 1528 阅读 · 0 评论