有点令人困惑,所以如果我放下示例和预期的输出开始,它会更容易。
我有一个看起来像这样的表:(Unit1 - Unit2 列可以以相同的通用格式跨越多达 30 列)
| ID | Name | Unit1_left | Unit2_left |
| 1 | Tom | 50 | NULL |
| 2 | Tom | NULL | 1 |
| 3 | Tom | 45 | NULL |
| 4 | Dan | NULL | NULL |
我要选择的是这样的表:
| Name | Unit1_left | Unit2_left |
| Tom | 45 | 1 |
| Dan | NULL | NULL |
这样做是按名称分组并尝试在其他 2 列中查找最后一个值(如果它们存在)(如果不存在则返回 NULL)。
我查看了其他各种问题,他们都说要使用Max()
,但这不起作用,因为它选择了最高值(不正确)。我已经看到在 MsSQL 中有一个Last()
函数看起来有点像我想要它做的,但它没有在 MySQL 中实现,也不是我需要的。
我想问的是,有没有人知道选择这样的数据的可能方法,或者我是否必须使用单独的编程语言来做到这一点?