高频HIVE-SQL笔试题详解
复制WITH active AS
(SELECT 100 UID,
2021-04-01dt
UNIONALLSELECT 101 UID,
2021-04-01dt
UNIONALLSELECT 102 UID,
2021-04-01dt
UNIONALLSELECT 103 UID,
2021-04-01dt
UNIONALLSELECT 100 UID,
2021-04-02dt
UNIONALLSELECT 101 UID,
2021-04-02dt
UNIONALLSELECT 102 UID,
2021-04-02dt
UNIONALLSELECT 103 UID,
2021-04-02dt
UNIONALLSELECT 104 UID,
2021-04-02dt
UNIONALLSELECT 100 UID,
2021-04-03dt
UNIONALLSELECT 104 UID,
2021-04-03dt
UNIONALLSELECT 101 UID,
2021-04-04dt
UNIONALLSELECT 102 UID,
2021-04-04dt
UNIONALLSELECT 103 UID,
2021-04-04dt
UNIONALLSELECT 104 UID,
2021-04-04dt
UNIONALLSELECT 105 UID,
2021-04-04dt
UNIONALLSELECT 102 UID,
2021-04-03dt)
SELECT UID,
max(days)days
FROM
(SELECT date_sub(dt,rn),
UID,
count(DISTINCT dt)days
FROM
(SELECT UID,
dt,
row_number()over(PARTITION BY UID
ORDERBY dt)rn
FROM active)x
GROUPBY date_sub(dt,rn),
UID)y
GROUPBY UID
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.
THE END