仅在唯一列上计算记录

Count Record Only On Unique Column

我有一个 table 如下:

  ID  |  Name  
------|--------
   1  |  Kevin
   1  |  Kevin
   2  |  Jim
   3  |  Jim
   4  |  Alex

我正在尝试获取具有唯一 IDName 的计数。预期结果为:

  ID  |  Name  |  Count
------|--------|---------
   1  |  Kevin |    1
   2  |  Jim   |    2
   3  |  Jim   |    2
   4  |  Alex  |    1

我原以为我可以用类似于

的查询来做到这一点
select distinct ID
  , Name
  , count(Name) over (partition by Name)
from table

但是此查询也为 Kevin 提供了 2 的计数,我无法按逻辑将 Kevin 保持为 1。

我会推荐:

select id, name, count(*) over(partition by name) cnt
from mytable
group by id, name