在 SQL 查询中分组 COUNT

grouped COUNT in SQL Query

我正在尝试获取分组计数的 SUM。

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
==================================

我假定您的查询 returns 第一个 table 结果?你可以这样做:

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 函数放在派生的 table 中?有很多方法可以做到这一点。还是您的查询是尝试,第一个 table 是数据样本以使其看起来像后者?