繁体   English   中英

在mysql中明智地获取最大值行

[英]Fetching the max value row wise in mysql

我有一个表结构

ID  Col_1  col_2  col_3  col_4
1    34     23     45     32
2    20     19     67     18
3    40     10     76     86

我在这里想要col_1,col_,col_3,col_4的最大值,所以我的输出看起来像

 ID   Col_1   col_2  col_3  col_4  max
    1    34     23     45     32   45
    2    20     19     67     18   67 
    3    40     10     76     86   86

我尝试使用

SELECT ID, MAX(col_1,col_2,col_3,col_4) as max
FROM demo
GROUP BY ID

任何帮助将非常感激。

您需要规范化表结构。 尝试这个

select ID, max(Col_1) as max_value from
(
select ID, Col_1 from table
union all
select ID, Col_2 from table
union all
select ID, Col_3 from table
union all
select ID, Col_4 from table
) as t group by ID

你可以使用mysql函数GREATEST

SELECT id, col1, col2, col3, col4, 
GREATEST(col1, col2, col3, col4) AS mx FROM demo

http://sqlfiddle.com/#!9/9cbb0/2

你可能会尝试这个

SELECT ID, col_1, col_2, col_3, col_4, 
GREATEST(col_1, col_2, col_3, col_4) AS max_value FROM table_name

@Thijs供您参考,这是我得到的相应输出。

在此处输入图片说明

@Madhivanan的第一个查询的查询结果

在此处输入图片说明

提供的两个解决方案中的第一个解决方案的查询结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM