【发布时间】:2019-05-15 07:55:56
【问题描述】:
所以我在这里有一个名为 my_table 的表
| userid | gender | year | money |
| ------ | ------ | ---- | ----- |
| 1 | B | 12 | 50 |
| 1 | B | 24 | 150 |
| 1 | B | 36 | 5 |
| 1 | G | 0 | 0 |
| 1 | G | 12 | 120 |
| 1 | G | 48 | 120 |
| 2 | B | 12 | 23 |
| 2 | B | 24 | 56 |
| 2 | G | 36 | 23 |
| 3 | G | 0 | 234 |
| 3 | G | 12 | 34 |
| 4 | G | 0 | 0 |
我想根据性别返回最高可用金额的行。 因此,例如,性别 B 的返回表将是这样的
| userid | gender | year | money |
| ------ | ------ | ---- | ----- |
| 1 | B | 24 | 150 |
| 2 | B | 24 | 56 |
性别 G 的返回表会是这样的
| userid | gender | year | money |
| ------ | ------ | ---- | ----- |
| 1 | G | 12 | 120 |
| 1 | G | 48 | 120 |
| 2 | G | 36 | 23 |
| 3 | G | 0 | 234 |
| 4 | G | 0 | 0 |
但是由于性别 G 的表重复了金钱的价值,我希望它返回最高年份的行。 性别 G 的预期表格是
| userid | gender | year | money |
| ------ | ------ | ---- | ----- |
| 1 | G | 48 | 120 |
| 2 | G | 36 | 23 |
| 3 | G | 0 | 234 |
| 4 | G | 0 | 0 |
我尝试过的:http://sqlfiddle.com/#!9/5433cbc/2 我能够获得性别 B 的表格,但不能获得性别 G 的表格。
我想要实现的是生成一个表格,将上面的两个性别表合并为一个。例如,
| userid | year_b | max_money_for_b | year_g | max_money_for_g |
| ------ | ------ | --------------- | ------ | --------------- |
| 1 | 24 | 150 | 48 | 120 |
| 2 | 24 | 56 | 36 | 23 |
| 3 | null | null | 0 | 234 |
| 4 | null | null | 0 | 0 |
【问题讨论】: