-1

どうすればこのように選択できますか? ユーザー定義の集計関数を作成できますか

SELECT Max(A),(SELECT TOP 1 FROM TheGroup Where B=Max(A))マイテーブルから

以下に示すように MyTable

    A  B  C
--------------
    1  2  S
    3  4  S
    4  5  T
    6  7  T

このようなクエリが必要です

SELECT MAX(A),(B Where A=Max(A)),C FROM MYTable GROUP BY C

私は以下のように結果を期待しています

 MAX(A)  Condition    C
-----------------------
   3        4         S
   6        7         T
4

6 に答える 6

1
SELECT Max(A)
FROM MyTable
Where B=(SELECT Max(A) FROM MyTable) 

アップデート:

SELECT *
FROM MyTable
Where B=(SELECT Max(A) FROM MyTable) 

更新 2:

SELECT DISTINCT A, B
FROM MyTable
Where A=(SELECT Max(A) FROM MyTable GROUP BY C) 

更新 3:

わかりました、私はあなたが今探しているものを理解していると思います..これはどうですか:

SELECT *
FROM MyTable
Where A in (SELECT Max(A) FROM MyTable GROUP BY C) 
于 2013-07-09T12:59:41.740 に答える
1
WITH
  cte AS
(
  SELECT 
    ROW_NUMBER() OVER (ORDER BY cola desc) AS Rno,
    *
  FROM
    tbl
)
SELECT top 1
cola,colb
FROM
  cte
order by Rno

次に試してみてください:

    WITH
  cte AS
(
  SELECT 
    ROW_NUMBER() OVER (PARTITION BY col3 ORDER BY col1 desc) AS Rno,
    *
  FROM
    tbl

)
SELECT 
col1,col2,col3
FROM
  cte
WHERE Rno=1
于 2013-07-09T13:07:43.877 に答える