首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sql中,RANK()如何对多个列起作用?

问在Sql中,RANK()如何对多个列起作用?
EN

Stack Overflow用户
提问于 2020-01-24 21:58:28
回答 1查看 306关注 0票数 0

你能解释一下这段SQL是怎么工作的吗?QUALIFY选择第一个值,很明显

代码语言:javascript
复制
QUALIFY RANK(column1 ASC, column2 ASC, column3 , column4)=1

在column1之后,Rank()对下一列做了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 22:04:35

首先,非常不鼓励使用RANK()。请参阅documentation。

更好的写法是:

代码语言:javascript
复制
QUALIFY RANK() OVER (ORDER BY column1 ASC, column2 ASC, column3 , column4) = 1

这相当于在满足以下条件的情况下返回所有行:

  1. column1的值最小,value.
  2. column2的值最小,(1).
  3. column3的值最小,(2).
  4. column4的值最小,(3)的值最小。

也就是说,数据按四个键排序,并返回第一行--以及与这四个键匹配的所有行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59897922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档