oracle11g - 如何在 Oracle 中获取每个组/ID 的最大行数?
问题描述
6806969 3 6806969 1 6806969 2 7654392 1 7654392 2 我有一个 Id,在下一列有 row_num 值。如何在表中输入下一个值,以便 id 6806969 的下一个插入值必须为 4,而 id 7654392 的下一个插入值必须为 3。请提出任何建议。我用 row_number 尝试 max() 但它没有给我想要的结果。
解决方案
您可以在单个INSERT
语句中执行此操作:
INSERT INTO table_name ( id, row_num )
SELECT id, row_num + 1
FROM (
SELECT id,
row_num
FROM table_name
WHERE id = :your_id
UNION ALL
SELECT :your_id,
0
FROM DUAL
ORDER BY row_num DESC
)
WHERE ROWNUM = 1;
推荐阅读
- c++ - 类中的“运算符自动”多种转换功能
- r - 如何使用 RSelenium 从网页下载嵌入的 PDF 文件?
- python - 如何检查日期条目是否已填写在 Python 中的 .csv 文件中
- expression - 如何判断一个 elisp 表达式是否纯正且恒定?
- javascript - 获取字符串特定部分的值
- java - tmx Map 仅在我调整窗口大小时加载 libgdx
- reactjs - 在 React Native 中淡入淡出
- php - Doctrine JOIN 与 DQL 中的子查询
- c# - c#MVC在实时服务器上的不同行为
- arrays - strcpy 不能与 char 数组一起正常工作