【发布时间】:2017-07-04 19:29:08
【问题描述】:
我有一张这样的桌子:
Name Id Amount
Name1 1 99
Name1 1 30
Name1 9 120.2
Name2 21 348
Name2 21 21
Name3 41 99
我想选择每个名称,按他们的 id 对它们进行分组并计算交易(非总和)。所以我想要下表:
Name Id Count
Name1 1 2
Name1 9 1
Name2 21 2
Name3 41 1
我试过这个sql:
SELECT
[Name],
[Id]
FROM table1 A
INNER JOIN (
SELECT
[Id],
count([Amount]) as 'Count'
FROM
table1
GROUP BY [Id]
)
B ON A.[Id] = B.[Id]
但我收到以下错误:Ambiguous column name 'Id'.
我做错了什么?
【问题讨论】:
-
你真的不需要内连接。
-
请参阅下面来自@JuanCarlosOropeza 的答案。但是您收到该错误的原因是因为在您的子查询中不可能知道您想要从哪个表中获取 Id。请记住,此时子查询和主查询都在范围内。您还需要将该子查询与主查询相关联。
标签: sql-server join stored-procedures inner-join