SQL-优先方案

时间:2018-08-09 13:57:13

标签: sql postgresql

我有Postgres表,需要根据以下要求对数据进行排序

情况1:

我有一个表客户,该客户包含排队的客户,并且有两种类型。特殊(P)和非特殊(E)客户(P)-特殊客户具有较高的优先级。

我需要对客户进行排序,如下三种情况

Case-1: 

Source        Target
id Customer    id Customer
1 E            1 E
2 E            5 P
3 E            2 E 
4 E            6 P
5 P            3 E
6 P            4 E

在情况1中,它在行中有4(E),然后是2(P)。因此,我需要将(P)个特殊客户放置在2个非特殊(E)客户之间。

Case-2: 

Source        Target
id Customer    id Customer
1 P            1 P
2 P            2 P
3 P            3 P 
4 E            4 E
5 E            7 P
6 E            5 E
7 P            6 E
8 E            8 E
9 E            9 E

在情况2中,它有3(P)行。因此,我需要将所有3个(P)放在一行中。因为(P)是特殊客户。之后,就像情况1

Case-3: 

Source        Target
id Customer    id Customer
1 E            1 E
2 P            2 P
3 P            3 P 
4 P            4 P
5 E            5 E
6 E            6 P
7 E            7 E
8 P            8 E

在案例3中,类似于案例1和案例2的组合。我需要一个查询来满足上述所有情况。

我尝试了一些操作,例如行号&分离客户&做联盟。但不起作用。

0 个答案:

没有答案