如果一个用户id有多条记录,则根据事件时间戳保留最新记录。
我的配置单元查询:
SELECT
a.user_id,
unix_timestamp(event_timestamp,'dd/MM/YYYY HH:MM') as converted_event_timestamp,
a.user_name,
a.user_location
FROM
sports_views a
INNER JOIN
(SELECT user_id,MAX(unix_timestamp(event_timestamp,'dd/MM/YYYY HH:MM')) as max_event_timestamp FROM sports_views GROUP BY user_id )b
ON( a.user_id =b.user_id AND a.converted_event_timestamp =b.max_event_timestamp)
LIMIT 10;
当我尝试运行这个配置单元查询时,我得到以下错误
SemanticException [Error 10002]: Line 8:43 Invalid column reference 'converted_event_timestamp'
有人能告诉我这个配置单元查询出了什么问题,我该如何解决这个问题吗?
4条答案
按热度按时间mm9b1k5b1#
我看到您在查询中将a.converted\u event\u timestamp命名为的位置。不能在联接中使用它,因为这可能是在select中的转换之前计算的。改为加入此
unix_timestamp(a.event_timestamp,'dd/MM/YYYY HH:MM')
nbysray52#
它不支持按别名联接。使用
unix_timestamp(event_timestamp,'dd/MM/YYYY HH:MM')
而不是在联接条件中,或者在子查询中计算它。q8l4jmvw3#
从中选择a.user\u id、a.user\u name、a.user\u location
(从运动视图中选择一个.user\u id,unix\u timestamp(event\u timestamp,'dd/mm/yyyy hh:mm')作为转换的\u event\u timestamp,一个.user\u name,一个.user\u location)一个内部连接(选择user\u id,max(unix\u timestamp,event\u timestamp,'dd/mm/yyyy hh:mm'))作为“运动视图”组中的最大\u事件\u时间戳(按用户id)b on(a.user\u id=b.user\u id和a.converted\u事件\u时间戳=b.max\u事件\u时间戳)limit 10;
rqdpfwrv4#