选择具有id的组的最小值

时间:2012-09-07 11:08:03

标签: select group-by min

请考虑以下代码:

DECLARE @table AS TABLE
  (
    id INT IDENTITY ,
    DATA VARCHAR(100) ,
    code CHAR(1)
  )

INSERT  INTO @table
        ( data, code )
VALUES  ( 'xasdf', 'a' ),
        ( 'aasdf', 'a' ),
        ( 'basdf', 'a' ),
        ( 'casdf', 'b' ),
        ( 'Casdf', 'c' ),
        ( NULL, NULL )

我需要获得一行,其中包含按代码分组的最小数据。我可以在没有嵌套查询的情况下执行此操作吗?

基本上,我想要的是这样的:

SELECT TOP ( 1 )
        id ,
        MIN(data)
FROM    @table
GROUP BY code 

2 个答案:

答案 0 :(得分:2)

SELECT *(SELECT ROW_NUMBER()OVER(PARTITION BY代码ORDER BY代码DESC,数据DESC)AS Row, ID,数据,代码 FROM @table)T T.Row = 1

答案 1 :(得分:0)

简短的回答是否定的。这是不可能的。