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 标准功能。 (在我写这篇文章时,您的问题没有特定的数据库标签。)
考虑下面的 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 标准功能。 (在我写这篇文章时,您的问题没有特定的数据库标签。)