【发布时间】:2020-06-08 17:44:56
【问题描述】:
我有一个有 2 列 tsf_no 和 item 的表,一个 tsf_no 可以有超过 1 个项目。我想要一个查询,它将为每 n 行分配序号(比如 thrd_id)。这个 n 是一个变量。我写了一个查询,但还没有。注:4 为 n(变量)。它为每 n 行分配序列号,但 tsf_no 100018628942 在 1 和 2 的 thrd_id 中都存在,这是我不想要的。
预期结果
如果 n = 2 那么结果将是
WITH
thrd_tbl AS (
SELECT DISTINCT tsf_no,
thrd_id,
item
FROM (SELECT tsf_no,
item,
CEIL(DENSE_RANK() OVER (ORDER BY tsf_no,item)/**4**) thrd_id
FROM tsf_item))
SELECT * FROM thrd_tbl;
CREATE TABLE TSF_ITEM(TSF_NO NUMBER(12),
ITEM VARCHAR2(25))
/
REM INSERTING into TSF_ITEM
SET DEFINE OFF;
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628027,'313549828');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628027,'313815940');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628027,'314075650');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628942,'308708641');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628942,'308708688');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018628942,'309959701');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018630248,'313870503');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018630248,'313870507');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018630289,'312547432');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018630289,'312547433');
Insert into TSF_ITEM (TSF_NO,ITEM) values (100018630289,'312547437');
【问题讨论】: