SQL按重复序列排序
我在Oracle 11g中运行了一个查询:SQL按重复序列排序,sql,Sql,我在Oracle 11g中运行了一个查询: SELECT id, sequence FROM objects WHERE parent=56; Id. Sequence A 1 B 1 C 1 D 2 E 2 F 3 我希望对输出进行分组,如果序列Id已经存在,则在末尾将新结果移动到新分组 Id. Sequence A 1 D
SELECT id, sequence FROM objects WHERE parent=56;
Id. Sequence
A 1
B 1
C 1
D 2
E 2
F 3
我希望对输出进行分组,如果序列Id已经存在,则在末尾将新结果移动到新分组
Id. Sequence
A 1
D 2
F 3
B 1
E 2
C 1
如果dbms支持窗口函数,请计算行数并将其用于排序
SELECT id,Sequence
FROM (
SELECT id, Sequence, ROW_NUMBER() OVER(PARTITION BY Sequence ORDER BY Id) as RN
FROM objects
WHERE parent=56
) T
ORDER BY RN,Id
如果dbms支持窗口函数,请计算行数并将其用于排序
SELECT id,Sequence
FROM (
SELECT id, Sequence, ROW_NUMBER() OVER(PARTITION BY Sequence ORDER BY Id) as RN
FROM objects
WHERE parent=56
) T
ORDER BY RN,Id
我想指出的是,您可以按的顺序将
行编号()
select id, sequence
from objects
where parent = 56
order by row_number() over (partition by sequence order by id),
sequence;
我想指出的是,您可以按
的顺序将行编号()
select id, sequence
from objects
where parent = 56
order by row_number() over (partition by sequence order by id),
sequence;
请标记您正在使用的dbms。这背后的逻辑是什么?对不起,第一次通过手机发布!我只是通过给我的视图来处理数据库。对象下有多组子对象。我会把它们当作一个整体,通过一组序列进行管理,但它们不是这样的,更糟糕的是,在不同的序列“组”下可以找到相同的子(类型)。我正在尝试通过重复序列将它们分组排序。您可能需要添加更多示例请标记您正在使用的dbms。这背后的逻辑是什么?抱歉,第一次通过移动发布!我只是通过给我的视图来处理数据库。对象下有多组子对象。我会把它们当作一个整体,通过一组序列进行管理,但它们不是这样的,更糟糕的是,在不同的序列“组”下可以找到相同的子(类型)。我正试图通过重复序列将它们分组排序。您可能需要添加更多示例谢谢。我学到了一些新东西!我以前没用过分区,谢谢。我学到了一些新东西!我以前从未使用过分区。