我需要一个SQL查询,从列中获得最大的数字:1、2、4和5,然后返回相应的日期和最高值。
我有这个数据库:
tabela:
| 日期|列1| coluna2| coluna3| coluna4| coluna5|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 2023-04-01 2023-04-01| 1| 2|八十八|九个|5个|
| 2023-03-02 2023-03-02|二十个|十一|八十五|1|五十五|
| 2023-05-14 2023-05-14 2023-05-14|十二岁|三十一|八|2|十二岁|
| 2023-01-04 2023-01-04|十四|五十四|4|四十五|四十六|
| 2023-03-15 2023-03-15 2023-03-15| 5个|四十五|五十五|3|七十五|
预期结果:
| | | |
| - -----|- -----|- -----|
| 列1| 2023-03-02 2023-03-02|二十个|
| coluna2| 2023-01-04 2023-01-04|五十四|
| coluna4| 2023-01-04 2023-01-04|四十五|
| coluna5| 2023-03-15 2023-03-15 2023-03-15|七十五|
1条答案
按热度按时间wqsoz72f1#
在MySQL 8.x中,一个选项是 unpivot(将列转换为行) 数据,然后使用
row_number
函数获取每列具有最大值的行。如果您的版本不支持lateral derived tables,您可以使用
union all
来取消数据透视。demo