我有一个表TAB,其结构如下:
create table TAB (
TRAIN_NUMber varchar2(5),TRAIN_START_DATE date,EVENT_CODE varchar2(2),INTERCHANGE_flaG number
)
我已在其中插入2条记录
Insert into TAB Values('12987','04-Nov-2019','HO',1);
Insert into TAB Values('12987','TO',1);
我只希望在输出中排成一行,排位为1,所以我已经根据Train No和TRAIN_START_DATE对数据进行了分区,但是我无法得出这样的事实:在{的情况下,两个不同的记录如何获得相同的排位{1}}?
DENSE_RANK()
我得到的输出为
SELECT TRAIN_NUMber,TRAIN_START_DATE,EVENT_CODE
FROM (
SELECT TRAIN_NUMber,EVENT_CODE,DENSE_RANK() OVER (PARTITION BY TRAIN_NUMber,TRAIN_START_DATE ORDER BY INTERCHANGE_flaG) my_rank
FROM TAB
)
WHERE my_rank = 1;
我只希望有一行具有my_rank = 1的行,为此我使用了TRAIN_NUMber TRAIN_START_DATE EVENT_CODE
12987 04-NOV-19 HO
12987 04-NOV-19 TO
。
我应该在查询中应用什么以便只得到一条记录?