SQL 计数函数 - 需要简单的聚合

SQL Count function - simple aggregate needed

考虑下面的 2 列。

如何添加每个名称的计数并将其放在每一行中,按照下面的第二个 table?

name     amount
joe      5 
joe      6
joe      7
jim      3
jim      4

name  name_count   amount
joe    3           5
joe    3           6
joe    3           7
jim    2           3
jim    2           4

您要查找的是与 windows 子句一起使用的 COUNT(*) 函数。这会对每一行进行聚合——但这些行不会减少为一行。

select name, count(*) over (partition by name) as name_count, amount
from table t;

这是大多数(但不是所有)数据库支持的 ANSI 标准功能。 (在我写这篇文章时,您的问题没有特定的数据库标签。)