首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以检查行在select脚本中是否具有相同的值/级别?

是否可以检查行在select脚本中是否具有相同的值/级别?
EN

Stack Overflow用户
提问于 2020-09-23 12:04:47
回答 1查看 170关注 0票数 0

我的目标是使用查找与相同的行,并用重复占用的行数替换秩。

如果我有这个结果:

代码语言:javascript
运行
复制
    points  place
1   300         1
2   267         2
3   245         3
4   245         3
5   240         5

我希望是这样

代码语言:javascript
运行
复制
    points  place
1   300         1
2   267         2
3   245         3-4
4   245         3-4
5   240         5

那么,如何检查行的位置/点是否具有相同的值,并在其周围构建一个大小写?为了使其更常见:是否有一种方法可以检查2行是否包含相同的值而不给出固定的值?所以类似于column1 = column1而不是column1 =3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-23 12:06:20

逻辑是使用窗口函数来确定给定scorescore值的计数。如果有,则不需要连字符:

代码语言:javascript
运行
复制
select points,
       (case when count(*) over (partition by points) = 1
             then place
             else place || '-' || place || count(*) over (partition by points) - 1
        end) as new_place
from t;

这假设place是一个字符串--但这可能不是真的。所以,你需要一些转换:

代码语言:javascript
运行
复制
select points,
       (case when count(*) over (partition by points) = 1
             then to_char(place)
             else place || '-' || place || count(*) over (partition by points) - 1
        end) as new_place
from t;

实际上,不需要min()位置,因为每一行都是相同的,所以:

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

https://stackoverflow.com/questions/64027558

复制
相关文章

相似问题

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