今、次のようなテーブル 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(*)
です。単一のクエリでこれを行うにはどうすればよいですか?
ありがとう。
今、次のようなテーブル 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(*)
です。単一のクエリでこれを行うにはどうすればよいですか?
ありがとう。
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
;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;