如何解决SQL查询以在列中放置数字,并在列中有新文本时放置递增的数字
我有一个查询SELECT * from TABLE
,其结果如下表所示:
预期的列如下:
我想像每当我们获得0
的值那样框住一个新列,然后将数字增加1
。我尝试了DENSE_RANK()
,ROW_NUMBER()
,但无法获得所提到的确切结果。在PostgreSQL中有可能吗?
解决方法
尝试一下:
select name,value,sum(case when value=0 then 1 else 0 end) over (order by "sno")
from (
select row_number() over() as "sno",* from example
) tab
注意:请注意,由于原始数据中没有订购字段,因此无法保证始终获得相同的输出。
因此,更好的方法是在视图输出中添加一些字段,通过该字段可以对其进行排序,并按如下所示运行查询:(假设您具有ID字段)
select
name,sum(case when value=0 then 1 else 0 end) over (order by id)
from example
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。