hive> SHOW PARTITIONS employees; SHOW PARTITIONS command數據庫
Hive : select from group by : group by 對聚合操做以外的字段使用. 先是 from group by 執行後, 才執行select操做. cookie
Hive 數據庫時間轉換: tbl_pv_hour.time字段, 格式是app
20141019 10:40:01函數
20141019 10:51:25unix
20141019 10:51:02netty
20141019 10:42:03ip
20141019 10:41:47ci
轉換成 基準時間是unix_timestamp(time,'yyyyMMdd HH:mm:ss'), 時間格式字符串不可少.字符串
select unix_timestamp(time,'yyyyMMdd HH:mm:ss') from tbl_pv_hour where dt="20141019" limit 5;terminal
GROUP BY : 分組, 將同一個 字段的同一個值, 聚合爲一組. 組中是一個關鍵字的多條記錄.
在此基礎上, 再使用聚合函數:max() \ min() \ sum() 等, 則會在一個 關鍵字值 對應的 分組中 找到 最大(max()) 最小(min()) 的一條記錄, 即實現了去重.
示例:
INSERT INTO TABLE default.general_details_day_gaozs
SELECT letv_cookie,max(ip),max(country),max(area),max(province),max(city),max(nettype),max(os),
max(os_version),p1,p2,max(p3),max(app),max(brand),max(terminal_id),max(resolution),max(browser),max(fake)
FROM data_raw.tbl_env_hour
WHERE dt=${datetime} and product=1
GROUP BY letv_cookie,p1,p2
其中 GROUP BY letv_cookie,p1,p2 將數據分組, max()將分組中最大值取出, 完成去重. 語句中不出現distinct, 沒用.
好的