我在一个简单的表中有以下数据:
ID | TYPE
---------
1 | 1
1 | 2
2 | 1
3 | 2
4 | 1
4 | 2
4 | 3
5 | 1
5 | 3
6 | 3
我现在需要通过以下方式查询这些数据:
- 对于每个 ID,应该只返回一行
- 如果 ID 只有一行,则返回它。
- 如果 ID 有多行,则返回 TYPE = 2 的行。如果不存在,则返回 TYPE = 3 的行。
- TYPE 可以是 1、2 或 3
- ID 和 TYPE 有一个复合唯一索引,这意味着每个 ID 最多可以有三行。
问题:我如何将这个逻辑放在查询中?
预期结果:
ID | TYPE
---------
1 | 2
2 | 1
3 | 2
4 | 2
5 | 3
6 | 3