Hive日期查詢面試題

2021-09-25 19:21:10 字數 3466 閱讀 6451

題目源自一次hive筆試,純手工錄入

欄位名詞

字段型別

中文描述

說明wrcvdate

int日期

主鍵year

int年

month

int月

dayint

日flag

int工作日標記

1表示工作日,0表示非工作日

要求編寫sql語句查詢20061231對應的上一工作日日期

我的解答:select wrcvdate from a where wrcvdate < 20061231 and flag=1 order by wrcvdate desc limit 1;

其他方法請指教

欄位名稱

字段型別

中文描述

說明company

varchar(10)

公司名稱

agencyid

varchar(10)

員工工號

主鍵productid

varchar(3)

產品**

主鍵wrcvdate

int日期

amtdecimak(17,6)

銷售金額

要求編寫sql語句查詢2023年8月1日~31日每一天的的那個月累計銷售金額

我的解答:select sum(amt) from b where wrcvdate>=20060801 and wrcvdate<=20060831

欄位名稱

字段型別

中文描述

說明company

varchar(10)

公司名稱

主鍵agencyid

varchar(10)

員工工號

主鍵orderno

varchar(8)

訂單號主鍵

productid

varchar(3)

產品**

主鍵producttype1

varchar(2)

producttype2

varchar(2)

要求編寫sql語句查詢(company,agencyid,orderno)組合鍵值重複的記錄明細

題目看不懂

欄位名稱

字段型別

中文描述

說明company

varchar(10)

公司名詞

主鍵agencyid

varchar(10)

員工工號

主鍵name

varchar(20)

員工姓名

dtmontj

int年月

主鍵duty

varchar(20)

員工職級

表e結構如下

欄位名稱

字段型別

中文描述

說明province

varchar(20)

省份company

varchar(10)

公司名稱

主鍵adearea

varchar(8)

辦事處名稱

主鍵表d與表e通過company關聯,要求編寫sql語句查詢每個員工工號所屬的省份

我的解答:select name,province from d join e on d.company = e.company

欄位名稱

字段型別

中文描述

說明company

varchar(10)

公司名稱

主鍵agencyid

varchar(10)

員工工號

主鍵orderno

varchar(8)

訂單號主鍵

orderdate

int訂單日期

customer

varchar(10)

客戶姓名

orderstatus

varchar(2)

訂單狀態

eftimestamp

有效起始日期

主鍵et

timestamp

有效結束日期

要求編寫sql語句查詢同一訂單的有效起始日期~有效結束日期存在交叉的訂單號,下面舉例說明:

公司名稱

員工工號

訂單號訂單日期

客戶姓名

訂單狀態

有效起始日期

有效結束日期

廣州分公司

1001

00320061201

wang

a1900/1/1

2000/12/20

廣州分公司

1001

00320070101

wang

b2000/12/21

9999/12/31

廣州分公司

1001

00420061201lia

1900/1/1

2000/12/20

廣州分公司

1001

00420070101lic

2000/12/20

9999/12/31

上述第3、4條記錄為同一訂單對應的明細,第三條記錄的有效結束日期與第四條記錄的有效開始日期出現交叉(2000/12/20),因此訂單號004就是查詢結果。

???

我的解答:select a,b,c,d from (select a,b,c,d,row_number() over(sort by c desc) rownum from t) t where t.rownum>=21 and t.rownum<=30;

我的解答:select id,salary from ( select id,salary ,row_number() over(partition by id order by id) row_num from emp ) t where row_num = 1

姓名科目

成績張三

語文20

張三數學

30張三

英語50

李四語文

70李四

數學60

李四英語

90姓名

語文數學

英語張三

2030

50李四

7060

90

我的解答:

select name,

collect_list(score)[0] as chinese,

collect_list(score)[1] as math,

collect_list(score)[2] as english

from temp group by name

???

Hive面試題三

2014010114 2014010216 2014010317 2014010410 2014010506 2012010609 2012010732 2012010812 2012010919 2012011023 2001010116 2001010212 2001010310 2001010...

Hive面試題 累積報表

userid visitdate visitcount u01 2017 1 215u02 2017 1 236u03 2017 1 228u04 2017 1 203u01 2017 1 236u01 2017 2 218u02 2017 1 236u01 2017 2 224 使用者id 月份 ...

hive行列轉換面試題

一 行轉列的使用 問題 hive如何將 a b 1 a b 2 a b 3 c d 4 c d 5 c d 6 變為 a b 1,2,3 c d 4,5,6 資料 test.txt a b 1 a b 2 a b 3 c d 4 c d 5 c d 6 答案 1.建表 drop table tmp ...