我有一张table。看起来像this:-
user_name idle_hours working_hours start_time stop_time
sahil24c@gmail.com 2019-10-24 05:05:00 2019-10-24 05:50:00 2019-10-24 08:30:02 2019-10-24 19:25:02
magadum@gmail.com 2019-10-24 02:15:00 2019-10-24 08:39:59 2019-10-24 08:30:02 2019-10-24 19:25:01
yathink3@gmail.com 2019-10-24 01:30:00 2019-10-24 09:24:59 2019-10-24 08:30:02 2019-10-24 19:25:01
shelkeva@gmail.com 2019-10-24 00:30:00 2019-10-24 09:10:01 2019-10-24 08:45:01 2019-10-24 18:25:02
puruissim@gmail.com 2019-10-24 03:15:00 2019-10-24 07:19:59 2019-10-24 08:50:02 2019-10-24 19:25:01
sangita.awa@gmail.com 2019-10-24 01:55:00 2019-10-24 08:40:00 2019-10-24 08:50:01 2019-10-24 19:25:01
vaishusawan@gmail.com 2019-10-24 00:35:00 2019-10-24 09:55:00 2019-10-24 08:55:01 2019-10-24 19:25:01
you@example.com 2019-10-24 02:35:00 2019-10-24 08:04:59 2019-10-24 08:45:02 2019-10-24 19:25:01
samadhanma@gmail.com 2019-10-24 01:10:00 2019-10-24 08:39:59 2019-10-24 09:00:02 2019-10-24 18:50:01
我想找出平均工作时间。
select * from workinglogs where unix_timestamp(working_hours) < AVG(unix_timestamp(working_hours));
当我运行这个查询时,它不起作用。
错误showing:- failed:semanticexception[error 10128]:行1:64尚不支持udaf“avg”的位置
2条答案
按热度按时间brjng4g31#
因为您使用的是udaf,所以必须使用group by。选择每列(不要使用*),然后按所选列分组。
jslywgbw2#
你可以遵循这个方法
子查询用于计算平均值,查询用于过滤输出
以你的数据为例
带子查询的查询
输出