MySQL取出N列里最大or最小的一个数据
2024-01-03 17:38:52
如题,现在有3列,都是数字类型,要取出这3列里最大或最小的的一个数字
-- N列取最小
SELECT
LEAST(temperature_a,temperature_b,temperature_c) min
FROM infrared_heat
-- N列取最大
SELECT
GREATEST(temperature_a,temperature_b,temperature_c) max
FROM infrared_heat
(注意:是3列! 不是3行! 3行直接用max() min()函数就行...)
实际应用, 取出3列中某个值最大的那一行数据?:
SELECT *
FROM infrared_heat a,
(
SELECT MAX(max) max,station_name,device_name,location
FROM
(
SELECT
GREATEST(temperature_a,temperature_b,temperature_c) max -- 取出3列最大值
,station_name,device_name,location
FROM infrared_heat
WHERE test_date >='2024-1-1' and test_date<'2024-1-31'
) temp
GROUP BY station_name,device_name,location
)b
WHERE a.test_date >='2024-1-1' and a.test_date<'2024-1-31'
and a.station_name=b.station_name and a.device_name=b.device_name and a.location=b.location
and GREATEST(a.temperature_a,a.temperature_b,a.temperature_c)=b.max -- 3列最大值
原始的数据,添加一个3列的最大值列max:
取出3列最大值后,再分组(group by)后的数据, 查询的结果外面还要套一层用于取出max对应的uid:
文章来源:https://blog.csdn.net/djk8888/article/details/135363052
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!