在sql中实现取一行最大值或者最小值

作者:大大盒子 时间:2024-01-24 21:34:28 

原始数据和目标数据

在sql中实现取一行最大值或者最小值

实现SQL语句(最大)


select
shop,
month,
greatest(dz,fz,sp) as max
from
tablename;

在sql中实现取一行最大值或者最小值

实现SQL语句(最小)


select
shop,
month,
least (dz,fz,sp) as min
from
tablename;

在sql中实现取一行最大值或者最小值

补充:SQL Server获取一行中多列的最大值三种方法

有些时候我们需要从一个表的多个列中获取一个最大值(这些列的数据类型相同,并且是每一行记录都要获取一个最大值)。下面讲了三种方法,我们一起看下。

首先我们创建一个表,并在表中插入需要用到的记录,如下:


create table Demo(
Guid varchar(50) not null default newid() primary key,
Date1 datetime null,
Date2 datetime null,
Date3 datetime null
)

然后我们在表中插入测试数据


insert into Demo(Date1,Date2,Date3) values
('2016-9-5','2016-8-6','2016-10-9'),
('2015-5-6','2015-8-6','2015-6-3'),
('2016-10-6','2015-6-6','2016-9-6')

select * from Demo

在sql中实现取一行最大值或者最小值

我们需要获取上面每一行记录的三个日期列的最大值。

方法一(效率高):

select Guid,(select Max(NewDate) from (values (Date1),(Date2),(Date3)) as #temp(NewDate)) as MaxDate from Demo

方法二(效率高):

select Guid, max(NewDate) as MaxDate from Demo unpivot (NewDate for DateVal in (Date1,Date2,Date3)) as u group by Guid

方法三(效率低,不建议用):

select Guid, (select max(NewDate) as MaxDate from (select Demo.Date1 as NewDate union select Demo.Date2 union select Demo.Date3)ud) MaxDate from Demo

在sql中实现取一行最大值或者最小值

第一种方法使用values子句,将每行数据构造为只有一个字段的表,以后求最大值,非常巧妙;

第二种方法使用行转列经常用的UNPIVOT 关键字进行转换再显示;

第三种方法跟第一种方法差不多,但是使用union将三个UpdateByAppDate字段合并为只有一个字段的结果集然后求最大值。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/weixin_45744450/article/details/104025058

标签:sql,最大值,最小值
0
投稿

猜你喜欢

  • ASP.NET连接 Access数据库的几种方法

    2024-01-25 15:31:09
  • 解析isset与is_null的区别

    2023-11-21 16:11:44
  •  Python 匿名函数lambda 详情

    2022-07-30 12:37:39
  • asp如何显示存储在数据库BLOB字段中的图像?

    2010-06-08 09:31:00
  • Python用函数思想完成哥德巴赫猜想代码分析

    2022-05-05 11:42:06
  • Access数据库中“所有记录中均未找到搜索关键字”的解决方法

    2011-04-14 10:31:00
  • Go语言中数组的基本用法演示

    2024-02-09 21:26:34
  • python协程用法实例分析

    2021-09-03 15:48:01
  • 没有sa密码无法集成windows身份验证登录的解决方法

    2024-01-14 11:23:01
  • pandas多级分组实现排序的方法

    2022-05-06 14:16:11
  • Oracle逗号分隔列转行实现方法

    2024-01-14 20:04:37
  • 提高javascript的速度系列(序)

    2008-07-15 12:38:00
  • 推荐四款可视化工具(解决99%的可视化大屏需求)

    2022-05-06 03:37:39
  • Python学习笔记整理3之输入输出、python eval函数

    2021-07-19 04:15:58
  • 微信小程序实现虎年春节头像制作

    2024-04-16 08:47:47
  • 深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复

    2023-11-06 19:25:27
  • 一些需要禁用的PHP危险函数(disable_functions)

    2023-11-23 15:29:25
  • Selenium python时间控件输入问题解决方案

    2023-09-05 19:35:25
  • js父页面中使用子页面的方法

    2024-04-19 09:50:49
  • 使用cmd命令行窗口操作SqlServer的方法

    2024-01-17 06:13:13
  • asp之家 网络编程 m.aspxhome.com