文心一言
-- 从ods_dd_tb_app_action表中选取日期在'${date1}'和'${date2}'之间,并且date与timestamp转换后的值与dt相等的记录
SELECT dt,imei
FROM
(
-- 内嵌查询,按照imei、dt分组并按照时间戳升序排列,选取每组的第一个时间戳值作为first_time
SELECT a.dt,a.imei,FIRST_VALUE(a.timestamp) OVER(PARTITION BY a.imei,a.dt ORDER BY TIMESTAMP ASC) first_time,a.timestamp,actiontype
FROM hdp_kg_zf_splist.ods_dd_tb_app_action a
WHERE a.dt between '${date1}' and '${date2}' AND from_unixtime(cast(TIMESTAMP/1000 AS int),'yyyyMMdd')=a.dt
)