sql 查询分组最大值最小值和对应发生时间

 时间:2026-02-12 05:42:58

1、假设“测值表”结构和内容如图所示,需要查询每一个测点测值的最大值/最小值及发生时间

sql 查询分组最大值最小值和对应发生时间

sql 查询分组最大值最小值和对应发生时间

2、使用Group By可以查询得到每个测点的最大值/最小值,但是需要同时查询发生时间时,会出现错误:“选择列表中的列 '测值表.时间' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。”

sql 查询分组最大值最小值和对应发生时间

sql 查询分组最大值最小值和对应发生时间

3、针对这一需求,有两种嵌套查询方法,一种是在嵌套查询中使用笛卡尔积,一种是在嵌套查询中使用连接查询。

sql 查询分组最大值最小值和对应发生时间

1、求最大值,注意图中红线标出的语句

select 测点编号,

测值 as 最大值,

时间

from 测值表

where ID not in

(select a.ID from 测值表 a,测值表 b

where a.测值<b.测值 and a.测点编号=b.测点编号);

select 测点编号,

测值 as 最大值,

时间

from 测值表

where ID not in

(select a.ID from 测值表 a

inner join 测值表 b on a.测点编号=b.测点编号

where a.测值<b.测值);

sql 查询分组最大值最小值和对应发生时间

2、求最小值,注意图中红线标出的语句

select 测点编号,

测值 as 最小值,

时间

from 测值表

where ID not in

(select a.ID from 测值表 a,测值表 b

where a.测值>b.测值 and a.测点编号=b.测点编号);

select 测点编号,

测值 as 最小值,

时间

from 测值表

where ID not in

(select a.ID from 测值表 a

inner join 测值表 b on a.测点编号=b.测点编号

where a.测值>b.测值);

sql 查询分组最大值最小值和对应发生时间

  • Power Query如何在原始表上追加数据
  • 如何在长短不同字符串中提取连续字符MID与FIND
  • Excel如何求一列中最大的几个数平均值
  • EXCEL表格怎么在一组数据中找出最大值
  • 如何用VBA在Excel表格A列中填入数据1-100
  • 热门搜索
    手机dns怎么设置 无线路由器怎么连接 美图秀秀怎么去水印 兰州大学怎么样 鞋磨脚后跟怎么办 脸上斑怎么消掉 斗鱼直播怎么赚钱 岔气怎么办 温州大学怎么样 ps箭头怎么画