У меня есть таблица вроде этого:SQL Count с внутренним соединением для одиночной таблицы
Name Id Amount
Name1 1 99
Name1 1 30
Name1 9 120.2
Name2 21 348
Name2 21 21
Name3 41 99
Я хочу, чтобы выбрать имя каждого, сгруппировать их по их идентификатору и сосчитать операции (NOT SUM). Поэтому я хочу следующую таблицу:
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. Но причина, по которой вы получали эту ошибку, заключается в том, что в вашем подзапросе невозможно узнать, из какой таблицы вы хотите получить идентификатор. Помните, что в точке подзапрос И основной запрос находятся в области видимости. Вы также должны соотнести этот подзапрос с основным запросом. –