SQL Query以下面的格式实现序列

时间:2017-03-01 07:12:00

标签: sql oracle

我正在尝试使用sql找到使用以下格式实现结果的解决方案。

我有两列:

col1  col2 
 1     e
 1     e
 1     e
 2     e2
 2     e2
 2     e2
 3     e3
 3     e3
 4     e4
 4     e4
 4     e4
 4     e4
 4     e4
 4     e4
 6     e6
 6     e6
 6     e6

其中col1具有序列号,col2具有col1具有从1到10开始的数字的事件...等等,对于每批事件,即第一批具有序列1,接下来分配2等等

我正在尝试使用sql

以下面的格式重新编号序列col1
col1  col2 
 1     e
 2     e
 3     e
 1     e2
 2     e2
 3     e2
 1     e3
 2     e3
 1     e4
 2     e4
 3     e4
 4     e4
 5     e4
 6     e4
 1     e6
 2     e6
 3     e6

3 个答案:

答案 0 :(得分:2)

也许你想要这个:

SELECT 
    ROW_NUMBER() OVER (PARTITION BY col2 ORDER BY col2) col1,
    col2
FROM 
    table_name
ORDER BY 
    col2;

答案 1 :(得分:1)

试试这个:

SELECT col1, col2 FROM YourTable ORDER BY col2, col1
  

ORDER BY子句有助于按顺序获得结果。

答案 2 :(得分:0)

检查程序中的Col2使用逻辑如:

如果col2 ='e'那么 开始  重置序列  序列 结束 否则如果col2 ='p'那么 开始  重置序列  序列 端