真題題目:
真題一:
movie    category

《阿凡達2》    懸疑,動作,科幻,劇情

《滿江紅》    懸疑,警匪,動作,心理,劇情

《流浪地球》    科幻,動作,災難

得到如下數據:

《阿凡達2》     懸疑

《阿凡達2》     動作

《阿凡達2》     科幻

《阿凡達2》     劇情

《滿江紅》       懸疑

《滿江紅》       警匪

《滿江紅》       動作

《滿江紅》       心理

《滿江紅》       劇情

《流浪地球》     科幻

《流浪地球》     動作

《流浪地球》     災難表名叫做movies

建表語句:
create table movies(

    movie string,

    category array<string>

)

row format delimited

fields terminated by '\t'

collection items terminated by ',';真題二:
如下數據:

小獅    水瓶座    A

小猿    射手座    A

小云    水瓶座    B

小鋒    水瓶座    A

小琪    射手座    A

變為:

指標:將相同星座和血型的人合併在一起

射手座,A            小猿|小琪

水瓶座,A            小獅|小鋒

水瓶座,B            小云
建表語句:

create table person_info(

name string, 

constellation string, 

blood_type string) 

row format delimited fields terminated by "\t";真題三:
data數據如下:

{"username":"張三","score":95}

{"username":"李四","score":76}

{"username":"小趙","score":92}

{"username":"王五","score":76}

{"username":"趙六","score":62}

{"username":"趙六1","score":62}

{"username":"趙六2","score":26}

{"username":"趙六3","score":89}

{"username":"趙六4","score":77}create table scores(

    json_str  string

);load data local inpath '/home/hivedata/zuoye02.txt' into table scores;
創建一張表,將上述數據導入表中,然後查詢如下結果:

成績大於90為優、大於80為良、大於60為中,不及格為差

統計結果:

等級    人數

優       x1

良       x2

中       x3

差       x4真題四:
找出連續活躍3天及以上的用户

 -- 這個是一個用户日活表,每一條表示一個用户,在某一條是活躍的

create table t_useractive(

  uid   string,

  dt    string

);insert into t_useractive

values('A','2023-10-01'),('A','2023-10-02'),('A','2023-10-03'),('A','2023-10-04'),

      ('B','2023-10-01'),('B','2023-10-03'),('B','2023-10-04'),('B','2023-10-05'),

      ('C','2023-10-01'),('C','2023-10-03'),('C','2023-10-05'),('C','2023-10-06'),

      ('D','2023-10-02'),('D','2023-10-03'),('D','2023-10-05'),('D','2023-10-06');真題答案:
第一題:
加載數據:
load data local inpath '你存放文本的目錄' into table movies;
示例:
load data local inpath '/home/hivedata/movies.txt' into table movies;
解答:

select movie,type from movies lateral view explode(category) mytable as type;第二題:
加載數據:
load data local inpath '你存放文本的目錄' into table person_info;
示例:

load data local inpath '/home/hivedata/zuoye01.txt' into table person_info;解答:
select concat(constellation,',',blood_type) cb,

      concat_ws('|',collect_list(name))  

      from person_info 

      group by concat(constellation,',',blood_type);第三題:
with t as (

    select

    if(get_json_object(c1, '$.score') > 90, '優',

        if(get_json_object(c1, '$.score') > 80,'良',

           if(get_json_object(c1, '$.score') > 60,'中','差')

            )

        ) grade

    from t6

)

select grade,count(1) from t group by grade

order by  

   case grade when '優' then 1 

    when '良' then 2 

    when '中' then 3 

    when '差' then 4 

   end

;第四題:
with t as (

    select *,row_number() over (partition by uid order by dt ) xh from t_useractive

)

select uid,date_sub(dt,xh),count(1) from t group by uid,date_sub(dt,xh) having count(1) >=3;