0

今、次のようなテーブル T があるとします。

A|B
1|1 
1|2 
2|1 
2|2 
2|3 
3|1 
3|2 
3|3 

取得するselect A, count(*) from T group by A必要があります:

A|count(*)
1|2
2|3
3|3

ここで、前のクエリの最後の 2 行を取得する必要があります。最大値はcount(*)です。単一のクエリでこれを行うにはどうすればよいですか?

ありがとう。

4

2 に答える 2

3
WITH recordList
AS
(
    SELECT  A, COUNT(*) totalCount,
            DENSE_RANK() OVER (ORDER BY COUNT(*) DESC) rn
    FROM    tableName
    GROUP BY A
)
SELECT  A, totalCount
FROM recordLIst
WHERE rn = 1
于 2013-01-29T03:50:18.113 に答える
1
;WITH a(A,C,R) AS
(
  SELECT A, COUNT(*), RANK() OVER (ORDER BY COUNT(*) DESC)
  FROM dbo.T GROUP BY A
)
SELECT A, C FROM a WHERE R = 1;
于 2013-01-29T03:53:47.803 に答える