sql - SQL - 优先级方案
问题描述
我有 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
在 case-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
在 case-2 中,它有 3 (P) 行。所以我需要将所有 3 (P) 排成一行。因为(P)是特殊客户。之后,与 case-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
在 case-3 中,它类似于 Case-1 和 Case-2 的组合。我需要一个查询来完成上述所有情况。
我尝试了类似rownumber & 分离客户& 做Union 之类的东西。但不工作。
解决方案
推荐阅读
- wordpress - 当订阅者角色用户登录时如何运行自定义脚本
- laravel - 在 Laravel 6.0.4 上安装数据表时出错
- c - 使用 setjmp() 和 longjmp() 防止程序中的分段错误
- java - 如何检查该字段是否存在于firestore中?
- php - 按修改日期排序 php 数组/或 JSON [可能重复]
- android - 单击同级时将焦点重定向到 EditText
- python - 合并 2 个重叠的句子
- push-notification - 如何在客户端(移动)代码中安全地使用 ConnectionString
- postgresql - 所有新模式和视图的 Postgresql 只读用户
- r - 我在函数的代码中遇到问题