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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值