我有一个表有两列tsf\u no和item,一个tsf\u no可以有多个item。我想有一个查询,将分配序列号(如thrdïid)每n行。这个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');
1条答案
按热度按时间nfs0ujit1#
我有点困惑。你的结果不需要任何“4”。您可以使用:
也许这能解决你的问题。如果没有,你应该提供更清晰的数据来说明你想做什么。