如何从查询中指定最大值和最小值?

Posted

技术标签:

【中文标题】如何从查询中指定最大值和最小值?【英文标题】:How to specified max and min value from query? 【发布时间】:2020-10-04 19:41:11 【问题描述】:

我有这样的表格,我需要在表格中指定最高和最低价格。

id   value   price
1     aaa     100
2     bbb     200
3     ccc     300

像这样:

id   value   price   status
1     aaa     100     min
2     bbb     200     
3     ccc     300     max

使用此代码,我可以获得最大和最小价格值:

SELECT
    min(price) as min_price
    , max(price) as max_price
FROM 
(
    select *
    From MyTable
) tmp;

【问题讨论】:

如果有平局怎么办?如果表中只有一行怎么办? 【参考方案1】:

您需要使用maxmin窗口函数如下。

declare @Test table (id int, [value] varchar(3), price money);

insert into @Test (id, [value], price)
values
(1, 'aaa', 100)
, (2, 'bbb', 200)
, (3, 'ccc', 300);

select *
  , case when max(price) over () = price then 'max'
  when min(price) over () = price then 'min'
  else '' end status
from @Test;

返回:

id  value   price   status
1   aaa     100.00  min
2   bbb     200.00  
3   ccc     300.00  max

这不考虑关系,但是,您需要指定您希望在这种情况下发生的事情。

注意:如果您以后可以使用 DDL/DML 设置您的问题 - 这可以节省回答者的时间。

【讨论】:

你能给出按值设置分组的解决方案吗? @HadiRanji 请提出一个新问题。 ***.com/questions/70878041/…

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

输出超出range()函数中指定的最大值

java数组算法例题(冒泡排序,选择排序,找最大值最小值,添加删除元素等)

java数组算法例题(冒泡排序,选择排序,找最大值最小值,添加删除元素等)

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

pandas使用groupby函数基于指定分组变量对dataframe数据进行分组使用min函数计算所有分组中指定数值变量的聚合最小值即字段在指定分组的最小值([]方括号指定需要计算的数值字段)

mysql 中如何拿到每条数据最大值和最小值