在Oracle中有条件地进行GROUP BY

时间:2016-12-12 22:06:21

标签: oracle

我试图弄清楚在这种情况下如何有条件地分组:

我的表格如下:

Traveler_Code|Traveler_Name|Traveler_Gender|Traveler_state|Traveler_Class|Train_No|Flight_No|Train_apply|Flight_apply
-------------|-------------|---------------|--------------|--------------|--------|---------|-----------|------------
11            ABC             M             CA                 First              123   EK123        Y            Y
12            DEF             M             CA                 First         123    LH215        Y            N
13            XYZ             F             CA                 Second        456    MI890        Y            Y
14            GHI             F             CA                 Second        789    DU901        N            N

在上面的示例中,我想按性别,州,班级,train_no和flight_no对旅行者进行分组。但是,我需要在同一组中使用ABC和DEF,因为DEF的flight_apply为'N',所以我不必将它按Flight分组。

同样,我希望XYZ和GHI在同一组中,因为我将train_apply和flight_apply都设置为GHI的'N'。因为XYZ和GHI在性别,州,阶级方面相匹配,我希望它们在同一组中

我正在寻找条件组,但不太明白我如何才能达到预期的效果。任何帮助是极大的赞赏。

以下是预期结果:

Group1  M   CA  First   123  EK123  ABC    
Group1  M   CA  First   123  NULL   DEF
Group2  F   CA  Second  456  MI890  XYZ
Group2  F   CA  Second  NULL NULL   GHI

0 个答案:

没有答案