sql - 如何在 SQL 中分配重复增量?
解决方案
以下使用 id 列来解决订单问题。将其替换为相应的表达式。这也解决了以 1 开始显示序列并为“新”行显示 0 的要求。
SQL(更新):
SELECT logs.*
, CASE WHEN text = 'NEW' THEN 0
ELSE
COALESCE(SUM(CASE WHEN text = 'NEW' THEN 1 END) OVER (PARTITION BY xrank ORDER BY id)+1, 1)
END AS display
FROM logs
ORDER BY id
结果:
+----+-------+------+---------+
| id | xrank | text | display |
+----+-------+------+---------+
| 1 | 1 | A | 1 |
| 2 | 1 | B | 1 |
| 3 | 1 | C | 1 |
| 4 | 1 | NEW | 0 |
| 5 | 1 | D | 2 |
| 6 | 1 | Q | 2 |
| 7 | 1 | B | 2 |
| 8 | 1 | NEW | 0 |
| 9 | 1 | D | 3 |
| 10 | 1 | Z | 3 |
| 11 | 2 | A | 1 |
| 12 | 2 | B | 1 |
| 13 | 2 | C | 1 |
| 14 | 2 | NEW | 0 |
| 15 | 2 | D | 2 |
| 16 | 2 | Q | 2 |
| 17 | 2 | B | 2 |
| 18 | 2 | NEW | 0 |
| 19 | 2 | D | 3 |
| 20 | 2 | Z | 3 |
+----+-------+------+---------+
推荐阅读
- android - 从firebase获取纬度和经度值
- android - 如何保护 AWS 的键值
- vim - DECSET SGR 1006 中鼠标滚轮左/右的按钮代码是什么?
- c# - 依赖属性未显示在属性窗格中
- html - 如何增加拨动开关的宽度
- vba - Excel查找和替换值宏或vlookup
- ruby-on-rails - 使用 HTTParty 将时间转换为可消化的 JSON 字符串
- android - 如何获取节点名称以 kpk 开头的所有值,仅输出一个字符串
- enums - Swift 到 Kotlin:枚举
- c# - 将现有的代码优先模型和流畅的 API 配置从 Entity Framework 6 移植到 Entity Framework Core 2.0