我试图用这个查询在bigquery中找到第五高的薪水,但是它给了我一个错误 LEFT OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join.
我相信这是解决这个问题的正确的sql查询,但是bigquery中有些东西不起作用。有人能帮我吗?:)
select concat(first_name, ' ', last_name) as Name, salary
from `table` w1
where 4 = (select count(distinct(salary))
from `table` w2
where w2.salary > w1.salary)
2条答案
按热度按时间iih3973s1#
您的查询似乎返回了四个较大的行。这将是第五大薪水。所以,就用
dense_rank()
:b1uwtaje2#
下面是bigquery标准sql
对大量数据使用诸如densed\u rank()、row\u number()之类的函数通常会导致资源限制超出等错误。
取决于您的实际用例-您可以考虑以下替代方案:
或者
以上两个版本都会给你一个第五高薪的记录