仅在唯一列上计算记录
Count Record Only On Unique Column
我有一个 table 如下:
ID | Name
------|--------
1 | Kevin
1 | Kevin
2 | Jim
3 | Jim
4 | Alex
我正在尝试获取具有唯一 ID
的 Name
的计数。预期结果为:
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
我有一个 table 如下:
ID | Name
------|--------
1 | Kevin
1 | Kevin
2 | Jim
3 | Jim
4 | Alex
我正在尝试获取具有唯一 ID
的 Name
的计数。预期结果为:
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