sql - Sql 查询返回最大计数 1 如果值为 0 或 -1 否则取最大计数
问题描述
下面的查询工作正常我遇到的问题是tableA我在该表中有一个默认值为-1,所以它返回0但我想要一个可以检查最大计数是否为的if或case条件 - 1 然后它应该以 1 开头,否则取最大计数
SELECT column1, column2,column3,
coalesce((SELECT max(columnid)
FROM tableA),1)
+ row_number() OVER (ORDER BY user) columnid
FROM (SELECT columnid,
column3,column2,
row_number() OVER (PARTITION BY column3
ORDER BY user) rn
FROM tableB) t
WHERE rn = 1
示例:假设我们在表中的最大计数为 -1,它是一个默认值,如果值不是 -1,它应该从 0 开始计数,它应该获得最大计数
解决方案
你可以改变
coalesce((SELECT max(columnid)
FROM tableA),1)
至:
CASE WHEN coalesce((SELECT max(columnid)
FROM tableA),1) =-1 THEN 0 ELSE coalesce((SELECT max(columnid)
FROM tableA),1) END
推荐阅读
- rest - 如何从 Google 的 OAuth 2.0 身份验证系统自动获取“授权码”
- c - 编译器给出错误 ld 以信号 11 终止
- visual-studio-code - 如何从浏览器启动 vscode 调试配置?
- c# - 在excel c#中自动启用宏
- clojure - 尽管在 Clojure 中对 Java 构造函数有类型提示,但仍会出现反射警告
- python - Pywin32将新页面添加到word文档
- javascript - 无法使用 .find() 从数组中过滤值
- javascript - 在 nuxt.config.js 中请求域名
- python - Tensorflow - 使用相同的梯度多次更新权重
- javascript - 如何使用创建帐户页面将新帐户放入 html 文件