HQL常用命令

查看分区

show partitions  表名
show partitions  test.test_table
show ROWCOUNT extended test::test1

复杂查询

WITH test_t1 AS (
	SELECT  statis_day, logid, test_id
	FROM test::test_t1
	WHERE statis_day=20210430 AND logid>0
	GROUP BY statis_day, logid, test_id
)
, test_t2 AS (
	SELECT statis_day, logid, item_id, uid
	FROM test::test_t2
	WHERE statis_day=20210430 AND logid>0
	GROUP BY statis_day, logid, item_id, uid
)
, test_t3 AS (
	SELECT test_t1.statis_day, test_t1.logid, test_t2.item_id, 
	    test_t2.uid, test_t1.test_id
	FROM test_t1 JOIN test_t2 
	ON test_t1.statis_day = test_t2.statis_day 
	and test_t1.logid = test_t2.logid
), click_t AS (
	SELECT statis_day, logid, item_id, uid
	FROM test::test_click_t3
	WHERE statis_day=20210430 AND logid>0
	GROUP BY statis_day, logid, item_id, uid
)
select 
    test_t3.statis_day, 
    test_t3.test_id,
    count(distinct test_t3.uid) as expost_uv,
    count(distinct click_t.uid) as click_uv, 
    round(count(distinct click_t.uid)/count(distinct expose_t.uid), 6) AS click_rate
from test_t3 left join click_t on 
        test_t3.statis_day = click_t.statis_day 
    	and test_t3.logid = click_t.logid 
    	and test_t3.item_id = click_t.item_id
group by test_t3.statis_day, test_t3.test_id

列转行

# 通过 GROUP BY  + CONCAT_WS + COLLECT_LIST
CREATE TABLE IF NOT EXISTS user_order (
  uid BIGINT,
  order_id BIGINT
);

SELECT 
	uid,
	CONCAT_WS(',', COLLECT_LIST(order_str)) AS order_list
FROM
(
	SELECT uid , CAST(order_id AS STRING) AS order_str
	FROM user_order
) tmp
GROUP BY uid
;

行转列

moviecategory
战狼2战争,动作,灾难
select movie, category_name
from movie_info 
lateral view explode(split(category,',')) table_tmp as category_name;

取尾号

SELECT uid, substring(uid,-2,1)
FROM test.test1
WHERE statis_day=20201122
LIMIT 10

解析jsion串

get_json_object(statparams,'$.freeStatus') as freeStatus

按指定字符分割字符串

split(qimei, '_')[1]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HQL(Hive Query Language)是一种类 SQL 的语言,用于在 Hive 中进行数据查询和处理。以下是 HQL 的常用查询命令及其功能: 1. SELECT:用于从表中选择需要查询的列或计算的表达式,并输出查询结果。SELECT 语句可以与其他命令结合使用,如 JOIN、WHERE、GROUP BY 和 ORDER BY 等。 2. FROM:用于指定查询的表或视图。FROM 子句可以指定单个表或多个表,也可以指定子查询和 JOIN 操作。 3. WHERE:用于过滤查询结果,只输出符合条件的数据。WHERE 子句可以通过比较运算符、逻辑运算符和函数等来指定过滤条件。 4. GROUP BY:用于将查询结果按照指定的列或表达式进行分组,以便进行聚合计算。GROUP BY 子句必须与聚合函数(如 COUNT、SUM、AVG、MAX、MIN 等)一起使用。 5. HAVING:用于过滤 GROUP BY 分组后的数据,只输出符合条件的分组结果。HAVING 子句可以通过比较运算符、逻辑运算符和函数等来指定过滤条件。 6. ORDER BY:用于对查询结果按照指定的列或表达式进行排序。ORDER BY 子句可以指定升序或降序排序。 7. JOIN:用于将多个表或子查询中的数据进行关联,以便进行联合查询。JOIN 子句可以指定 INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN 和 FULL OUTER JOIN 等不同类型的连接方式。 8. UNION:用于将多个 SELECT 语句的结果合并为一个结果集,以便进行联合查询。UNION 子句可以指定 UNION、UNION ALL 和 UNION DISTINCT 三种不同的合并方式。 9. LIMIT:用于限制输出结果的行数。LIMIT 子句可以指定起始行和要输出的行数,以便进行分页查询。 以上是 HQL 的常用查询命令及其功能,可以根据需要灵活使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值