【发布时间】:2021-03-09 11:44:36
【问题描述】:
我怎样才能把这张桌子翻过来:
| User | ItemID | Quantity | TotalValue (ValueOfItem*Quantity) |
| UserY | 1 | 1 | 15 |
| UserX | 2 | 1 | 22 |
| UserX | 3 | 1 | 7 |
| UserY | 3 | 1 | 7 |
| UserX | 1 | 2 | 30 |
| UserY | 2 | 1 | 22 |
进入这张表:
| User | ItemID | Quantity | TotalValue (ValueOfItem*Quantity) |
| UserX | 1 | 2 | 30 |
| UserX | 2 | 1 | 22 |
| UserX | 3 | 1 | 7 |
| UserY | 1 | 1 | 15 |
| UserY | 2 | 1 | 22 |
| UserY | 3 | 1 | 7 |
我需要:
- 对用户进行分组,所以 UserX 行都在一起,UserY 行都在一起。
- 在用户的行中,ItemID 需要按升序排列,即 1、2、3。
- 用户组需要按用户总价值的降序排列。
- 即,UserX 高于 UserY,因为 (30+22+7) > (15+22+7)
【问题讨论】:
-
您的输入表有 UserX/UserY 的 4/2 条记录,但您的预期输出包含 3/3。请修正错误的表格。
标签: sql postgresql sorting