with sub as(--this is example only and makes no sense
--replace with real query
--of course there is no rows with sal>max sal in the same table
select max(S.sal) AS MaxSal from employee S
)
select *
from employee e
cross join sub s
where e.sal>s.MaxSal
如果你写的时候没有 CROSS JOIN ,很简单 from employee e, sub s ,或不带条件的连接,它仍然是相同的交叉连接,最好使用交叉连接显式编写它。
2条答案
按热度按时间w80xi6nr1#
配置单元不支持这样的子查询,也不允许计算变量,配置单元中的变量是简单的文本替换,不需要计算。您可以在shell中计算 predicate 并传递给配置单元脚本,如下所示:https://stackoverflow.com/a/37821218/2700344
如果要在同一个配置单元查询中执行此操作,请在计算子查询时不要出错,并对其结果进行交叉联接,然后进行筛选。将首先计算子查询,然后将其结果放入分布式缓存中,并应用于每个读取表的Map器的筛选器中:
如果你写的时候没有
CROSS JOIN
,很简单from employee e, sub s
,或不带条件的连接,它仍然是相同的交叉连接,最好使用交叉连接显式编写它。nxagd54h2#
您可以尝试使用这种形式的配置单元查询。这将使雇员的工资等于最高工资。
例子:
查询执行输出: