一,基本查询
1.查询所有
SELECT * FROM itheima.orders;
2.查询单列
SELECT orderid, totalmoney, username, useraddress, paytime FROM itheima.orders;
3.查询数据量
SELECT COUNT(*) FROM itheima.orders;
4.过滤广东省订单
SELECT * FROM itheima.orders WHERE useraddress LIKE '%广东%';
5.找出广东省单笔营业额最大的订单
SELECT * FROM itheima.orders WHERE useraddress like '%广东%' ORDER BY totalmoney DESC LIMIT 1;
6.统计未支付、已支付各自的人数
SELECT ispay, COUNT(*) AS cnt FROM itheima.orders GROUP BY ispay;
7.在已付款订单中,统计每个用户最高的一笔消费金额
SELECT userid, MAX(totalmoney) AS max_money FROM itheima.orders WHERE ispay = 1 GROUP BY userid;
8.统计每个用户的平均订单消费额
SELECT userid, AVG(totalmoney) FROM itheima.orders GROUP BY userid;
9.统计每个用户的平均订单消费额,过滤大于10000的数据
SELECT userid, AVG(totalmoney) AS avg_money FROM itheima.orders GROUP BY userid HAVING avg_money > 10000;
10.JOIN订单表和用户表,找出用户名
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;
11.左外关联,订单表和用户表,找出用户名
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;
二,正则表达式
Hive中提供RLIKE关键字,可以供用户使用正则和数据进行匹配。



1.查找广东省的数据
SELECT * FROM itheima.orders WHERE useraddress RLIKE '.*广东.*';
2.查找用户地址是:xx省 xx市 xx区的数据
SELECT * FROM itheima.orders WHERE useraddress RLIKE '..省 ..市 ..区';
3.查找用户姓为张、王、邓
SELECT * FROM itheima.orders WHERE username RLIKE '[张王邓]\\S+';
4.查找手机号符合:188****0*** 规则
SELECT * FROM itheima.orders WHERE userphone RLIKE '188\\S{4}0\\S{3}';
三,UNION
UNION 用于将多个 SELECT 语句的结果组合成单个结果集。 每个 select 语句返回的列的数量和名称必须相同。否则,将引发架构错误。
基础语法: SELECT ...
UNION [ALL]
SELECT ...
UNION默认有去重功能:
如果不需要去重效果加上ALL
SELECT t_id, COUNT(*) FROM (
SELECT t_id FROM itheima.course WHERE t_id = '周杰轮'
UNION ALL
SELECT t_id FROM itheima.course WHERE t_id = '王力鸿' )
AS u GROUP BY t_id;
用于INSERT SELECT中
CREATE TABLE
itheima.course2 LIKE itheima.course;
INSERT OVERWRITE TABLE itheima.course2
SELECT * FROM itheima.course
UNION ALL
SELECT * FROM itheima.course;
博客围绕数据库操作展开,介绍了基本查询,如查询所有、单列、数据量等,还涉及过滤特定地区订单、统计消费金额等;讲解了在Hive中使用正则表达式进行数据匹配的方法;最后介绍了UNION将多个SELECT语句结果组合成单个结果集的用法。
695

被折叠的 条评论
为什么被折叠?



