avg
函数大家都不陌生,可能应用的时候是这样子:
'''sql
select avg(item) from table_a
'''
如何能够直接实现形如(不能运行)
select item_a,item_b
from table_a
where
item_a>avg(item_a) and item_b<avg(item_b)
item_a<avg(item_a) and item_b>avg(item_b)
我目前的解决是,先sql运行一遍select avg(item_a),avg(item_b) from table_a;
查看结果,然后再手动写入这个值。
或者是给个select出来的值保存在变量里的例子可能也能解决这个问题。
以下是自己尝试过无果的
看过帖子有这样写的:
select item_a
from table_a
where item_a>(select avg(item_a) from table_a))
我尝试过这样:
select item_a,item_b
from table_a
where
(item_a>avg(select avg(item_a) from table_a)) and (select avg(item_b) from table_b)))
or (item_a<avg(select avg(item_a) from table_a)) and (select avg(item_b) from table_b)))
给的结果是Unsupported SubQuery Expression
。
尝试过@范捷琦Jackie 大佬的回答:
set @item_a_mean=(select avg(item_a) from table_a);
报错是:Lexical error at line 2, column 5. Encountered: "@" (64), after : ""
可以用User-Defined Variables,然后这么写:
如果是Hive的话,可以再试试:
希望能帮助到你。