sql - 如何在 Postgresql 中创建以 4 为步骤递增的列
问题描述
我正在尝试向我的表中添加一列,该列以四步递增,如下所示:
1
1
1
1
2
2
2
2
3
3
3
3
etc.
我一直在阅读有关 CREATE SEQUENCE 的内容,但这似乎不是我所需要的。
有没有人有任何建议如何最好地做到这一点?
解决方案
您可以使用row_number()
整数除法:
select
t.*,
(3 + row_number() over(order by id)) / 4 rn
from mytable t
这假设您有一个名为 的排序列id
。我实际上并不建议存储这些派生信息。您可以即时计算它,也可以放入视图中。
推荐阅读
- r - R 按月过滤 - 哈佛数据科学
- python - Pyspark 自动将列设置为可为空,即使架构指定它不是(仅在读取文件时)
- rest-assured - 我尝试了我的 RestAssured 测试代码,但我收到了错误:
- flutter - Flutter - 从 MaterialPageRoute 返回后如何更新 Home Route
- flutter - FileSystemException: readSync failed, path = ....app\outputs\flutter-apk\app-debug.apk' (OS Error: The operation completed successfully. , errno = 0)
- python - 在 Python 中构建蒙特卡洛盒法的 n 分布
- javascript - Node、Express、Mysql2 应用程序中的 SQL 查询绑定问题
- javascript - 单击父页面上的按钮以使用 javascript 单击 iframe 内容上的按钮
- servlets - Servlet 无法读取 WEB-INF 文件夹
- java - 如何将 Spring Boot 中的视图与我的应用程序链接?