如何在SQL中查询最大值与最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQL中查询最大值与最小值相关的知识,希望对你有一定的参考价值。

我有一个SQL数据表,其中牵涉此问题的字段有最高气温,最低气温,日期时间(正点记录),请问如何查询一天当中的最大气温与最低气温。
各位都只是列出了查询该字段的最大值或最小值,但我需要的当天的最大值或最小值。比如今天是3月30日,我需要查询的是3月30日零点到现在的最大值与最小值。时间日期这个字段都是正点,从3月30日零点到23点正!望能指点下!问题的关键是在解决时间上的问题!
日期字段的值例子:2007-01-01 00:00:00

参考技术A select max(气温),min(气温) from 气温表;
哈哈
参考技术B 查最大 select max(列) from 表
查最小 select min(列) from 表
参考技术C 写出你的 日期时间 这个字段的 几个值, 看看 参考技术D select max(*) from ......本回答被提问者采纳

SQL 查询 - 分组并计算最大值 - 最小值

【中文标题】SQL 查询 - 分组并计算最大值 - 最小值【英文标题】:SQL Query- Partition into groups & calculate max- min value 【发布时间】:2012-09-19 17:40:04 【问题描述】:

在 Oracle 数据库中的 SQL 查询方面需要您的帮助。当事件 =“开始”时,我有想要分组的数据。例如。第 1-6 行是一个组,第 7-9 行是一个组。我想忽略事件 =“忽略”的行。最后我想计算这些组的 max(Value)-min(Value)。我没有办法对数据进行分组。

这可以实现吗?是否可以通过 Event = start 使用分区。相同的数据如下:

行事件值要求结果是值的最大值-最小值 1 开始 10 2个11 3乙12 4 C 13 5 天 14 6 E 15 5 ------------------------------------------ 7 开始 16 8个18 9 乙 20 4 ------------------------------------------ 10 开始 27 11 一个 30 12乙33 13 C 34 7 ------------------------------------------ 14 忽略 35 ------------------------------------------ 15 忽略 36 ------------------------------------------ 16 开始 33 17一34 18 乙 35 19 C 36 20 天 37 21 东 38 5 --------------------------------------------------------

【问题讨论】:

【参考方案1】:

是的,您可以在 SQL 中执行此操作。

以下查询首先通过查找行 id 之前的最大开始来查找行所在的组。此版本使用相关子查询进行此计算。

然后对 id 进行分组并进行计算。

select groupid, max(value) - min(value)
from (select t.*,
             (select max(row) from t t2 where t2.row < t.row and t2.event = start
             ) as groupid
      from t
     ) t
where event <> 'IGNORE'

【讨论】:

以上是关于如何在SQL中查询最大值与最小值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pig 中查询与最小值/最大值相关的数据

db2 sql,如何仅在一张表的同一查询中获取最小值和最大值?

PostgreSQL - 如何在单个查询中获取列的最小值和最大值以及与它们关联的行?

SQL Server中如何分组查询最大值

SQL分组查询最大值最小值

SQL中如何取多列的最大值?