Hive3:常用查询语句整理

一、数据准备

建库

sql 复制代码
CREATE DATABASE itheima;
USE itheima;

订单表

sql 复制代码
CREATE TABLE itheima.orders (
                                orderId bigint COMMENT '订单id',
                                orderNo string COMMENT '订单编号',
                                shopId bigint COMMENT '门店id',
                                userId bigint COMMENT '用户id',
                                orderStatus tinyint COMMENT '订单状态 -3:用户拒收 -2:未付款的订单 -1:用户取消 0:待发货 1:配送中 2:用户确认收货',
                                goodsMoney double COMMENT '商品金额',
                                deliverMoney double COMMENT '运费',
                                totalMoney double COMMENT '订单金额(包括运费)',
                                realTotalMoney double COMMENT '实际订单金额(折扣后金额)',
                                payType tinyint COMMENT '支付方式,0:未知;1:支付宝,2:微信;3、现金;4、其他',
                                isPay tinyint COMMENT '是否支付 0:未支付 1:已支付',
                                userName string COMMENT '收件人姓名',
                                userAddress string COMMENT '收件人地址',
                                userPhone string COMMENT '收件人电话',
                                createTime timestamp COMMENT '下单时间',
                                payTime timestamp COMMENT '支付时间',
                                totalPayFee int COMMENT '总支付金额'
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

LOAD DATA LOCAL INPATH '/home/atguigu/itheima_orders.txt' INTO TABLE itheima.orders;

用户表

sql 复制代码
CREATE TABLE itheima.users (
                               userId int,
                               loginName string,
                               loginSecret int,
                               loginPwd string,
                               userSex tinyint,
                               userName string,
                               trueName string,
                               brithday date,
                               userPhoto string,
                               userQQ string,
                               userPhone string,
                               userScore int,
                               userTotalScore int,
                               userFrom tinyint,
                               userMoney double,
                               lockMoney double,
                               createTime timestamp,
                               payPwd string,
                               rechargeMoney double
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

LOAD DATA LOCAL INPATH '/home/atguigu/itheima_users.txt' INTO TABLE itheima.users;

二、基本查询

查询数据量

sql 复制代码
SELECT COUNT(*) FROM itheima.orders;

过滤广东省订单

sql 复制代码
SELECT * FROM itheima.orders WHERE useraddress LIKE '%广东%';

找出广东省单笔营业额最大的订单

sql 复制代码
SELECT * FROM itheima.orders WHERE useraddress like '%广东%' ORDER BY totalmoney DESC LIMIT 1;

三、分组、聚合

统计未支付、已支付各自的人数

sql 复制代码
SELECT ispay, COUNT(*) AS cnt FROM itheima.orders GROUP BY ispay;

在已付款订单中,统计每个用户最高的一笔消费金额

sql 复制代码
SELECT userid, MAX(totalmoney) AS max_money FROM itheima.orders WHERE ispay = 1 GROUP BY userid;

统计每个用户的平均订单消费额

sql 复制代码
SELECT userid, AVG(totalmoney) FROM itheima.orders GROUP BY userid;

统计每个用户的平均订单消费额,过滤大于10000的数据

sql 复制代码
SELECT userid, AVG(totalmoney) AS avg_money FROM itheima.orders GROUP BY userid HAVING avg_money > 10000;

四、JOIN

JOIN订单表和用户表,找出用户名

sql 复制代码
SELECT o.orderid, o.userid, u.username, o.totalmoney, o.useraddress, o.paytime FROM itheima.orders o JOIN itheima.users u ON o.userid = u.userid;

左外关联,订单表和用户表,找出用户名

sql 复制代码
SELECT o.orderid, o.userid, u.username, o.totalmoney, o.useraddress, o.paytime FROM itheima.orders o LEFT JOIN itheima.users u ON o.userid = u.userid;

五、UNIO

去重联合的查询结果

sql 复制代码
SELECT * FROM course
UNION 
SELECT * FROM course

不去重联合的查询结果

sql 复制代码
SELECT * FROM course
    UNION ALL 
SELECT * FROM course

六、RLIKE正则查询

常用匹配规则

sql 复制代码
-- 查找广东省数据
SELECT * FROM itheima.orders WHERE useraddress RLIKE '.*广东.*';
-- 查找用户地址是:xx省 xx市 xx区
SELECT * FROM itheima.orders WHERE useraddress RLIKE '..省 ..市 ..区';
-- 查找用户姓为:张、王、邓
SELECT * FROM itheima.orders WHERE username RLIKE '[张王邓]\\S+';
-- 查找手机号符合:188****0*** 规则
SELECT * FROM itheima.orders WHERE userphone RLIKE '188\\S{4}0[0-9]{3}';
相关推荐
Ahtacca1 天前
hadoop部署前置准备
hadoop
计算机源码社2 天前
基于K-Means聚类的新生儿败血症临床分型与可视化分析系统 基于数据挖掘的新生儿败血症生命体征时序走势与关联性可视化研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
计算机源码社2 天前
基于大数据的全球温室气体排放燃料结构与碳强度评估研究-基于Spark的全球温室气体排放多维度检测与评估分析
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
Q26433650233 天前
【有i源码】基于大数据的城市交通流量与出行特征可视化分析平台-基于Hadoop的城市交通拥堵关联规则与异常检测研究
大数据·hadoop·机器学习·数据挖掘·数据分析·spark·数据可视化
kaoa0003 天前
Linux入门攻坚——90、Hadoop-2-MapReduce计算框架及Hadoop生态系统概览
linux·hadoop·mapreduce
Gl�ria3 天前
Hadoop 集群高可用节点分布
hadoop
计算机源码社3 天前
基于Hadoop+Spark的商家优惠券营销效果数据分析与可视化-基于Python的商家优惠券营销效果检测与评估分析系统
大数据·hadoop·python·数据挖掘·spark·毕业设计·数据可视化
IT毕设梦工厂3 天前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
Gl�ria4 天前
Hive SQL 执行卡住完整排查 & 处理
hive·hadoop·sql
Q26433650235 天前
【有源码】基于文本挖掘的消费者金融投诉主题发现与风险预警研究,基于Python的CFPB消费者投诉数据可视化分析系统
大数据·hadoop·机器学习·数据挖掘·spark·毕业设计·课程设计