我试图获得分组计数的总和。
SELECT ig_idx,ig_team1,ig_team2benefit,ig_game_type
FROM (select ig_idx,ig_team1,ig_team2benefit,ig_game_type,
RANK() OVER(partition by ig_root,ig_game_type order by ig_idx asc) AS rank
FROM info_game ) AS t1
WHERE rank < 2
==================================
idx name odds type
----------------------------------
1 Kjelsaas 1.4 dnb
2 Kjelsaas 1.75 1x2
3 Kjelsaas 1.75 ou
4 Kjelsaas 1.8 ah
5 Grorud 3 dnb
6 Grorud 3.8 1x2
7 Grorud 1.36 ou
8 Grorud 2.075 ah
9 Brumunddal 2.25 1x2
10 Brumunddal 1.57 ou
11 Brumunddal 2.2 ah
==================================
我想要一个结果。
==================================
idx name odds type count
----------------------------------
1 Kjelsaas 1.4 dnb 4
2 Kjelsaas 1.75 1x2 4
3 Kjelsaas 1.75 ou 4
4 Kjelsaas 1.8 ah 4
5 Grorud 3 dnb 2
6 Grorud 3.8 1x2 2
9 Brumunddal 2.25 1x2 3
10 Brumunddal 1.57 ou 3
11 Brumunddal 2.2 ah 3
==================================
答案 0 :(得分:3)
我假设您的查询返回第一个表结果?你可以这样做:
with cte_example
as
(SELECT ig_idx,ig_team1,ig_team2benefit,ig_game_type
FROM (select ig_idx,ig_team1,ig_team2benefit,ig_game_type,
RANK() OVER(partition by ig_root,ig_game_type order by ig_idx asc) AS rank
FROM info_game ) AS t1
WHERE rank < 2)
select *
,count(name) over(partition by name) count
from cte_example
或者您可以将count...over
函数放在派生表中?有很多方法可以做到这一点。或者您的查询是尝试,第一个表是数据样本,使其看起来像后者?