SQL聚合和查询中显示的其他字段

时间:2013-11-07 12:20:36

标签: sql sql-server aggregate

我有一个查询,我需要DateTime字段的MIN,然后我需要同一行中相应字段的值。

现在,我有类似的东西,但是我不能将Price字段放在聚合子句中,这不是我想要的。

SELECT MIN([Registration Time]), Price FROM MyData WHERE [Product Series] = 'XXXXX'

我需要MIN字段的Registration Time,然后我只想要该行的相应Price字段,但我该如何显示?

我还需要我的WHERE子句,如图所示。

我确信我忽略了一些非常明显的事情。使用SQL Server 2008

1 个答案:

答案 0 :(得分:4)

如果您只想要一条[Registration Time], Price的记录,那就像这样简单:

select top 1 [Registration Time], Price
from MyData
where [Product Series] = 'XXXXX'
order by [Registration Time]

如果您想要所有[Registration Time]的最小Price和相应的[Product Series],那么有一些方法,例如,使用row_number()函数:

with cte as (
    select
        [Registration Time], Price,
        row_number() over(partition by [Product Series] order by [Registration Time]) as rn
    from MyData
)
select
    [Registration Time], Price, [Product Series]
where rn = 1