0

考虑以下代码:

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 
4

2 回答 2

2

SELECT * (SELECT ROW_NUMBER() OVER(PARTITION BY code ORDER BY code DESC,data DESC) AS Row, id,DATA,code FROM @table) T where T.Row = 1

于 2012-09-07T15:36:21.697 回答
0

最简洁的答案是不。这是不可能的。

于 2012-10-22T15:52:14.623 回答