【问题标题】:SQL query select max min value from resultset querySQL查询从结果集查询中选择最大值最小值
【发布时间】:2013-10-26 15:04:20
【问题描述】:

我有一个带有查询的存储过程:

SELECT
    ID
    ,AmountInCurrency
    ,ExtractionDate
FROM
    Table

此查询返回 2 行:

ID  AmountInCurrency    ExtractionDate
1   8.00                2013-10-17 10:00:00.000
1   10.50               2013-09-16 09:00:00.000

我想在变量@mindate 和@maxdate 中选择Min 和Max Extrationdate。 现在我将结果集放入一个临时表中并从中选择最大值和最小值。

但是是否有可能像在选择中那样做:

ID  AmountInCurrency    ExtractionDate          MinExtractionDate       MaxExtractionDate
1   8.00            2013-10-17 10:00:00.000     2013-09-16 09:00:00.000     2013-10-17 10:00:00.000
1   10.50           2013-09-16 09:00:00.000     2013-09-16 09:00:00.000     2013-10-17 10:00:00.000

【问题讨论】:

  • 你关心其他列还是只关心最大值和最小值?
  • @MikeParkhill 我只关心最大值,最小值。戈登已经回答了。

标签: sql sql-server select


【解决方案1】:

您似乎想将最小和最大日期添加为结果集中的额外列。如果是这样,请使用窗口函数:

SELECT ID, AmountInCurrency, ExtractionDate,
       min(ExtractionDate) over () as MinExtractionDate,
       max(ExtractionDate) over () as MaxExtractionDate
FROM Table;

【讨论】:

    【解决方案2】:
    declare @mindate datetime,
                  @maxdate datetime
    
    select @mindate = min(extraction_date),
                @maxdate = max(extraction_date)
    from tbl
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2020-05-03
      • 2014-04-22
      相关资源
      最近更新 更多