我有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的组合。我需要一个查询来满足上述所有情况。
我尝试了一些操作,例如行号&分离客户&做联盟。但不起作用。