Ich habe eine Tabelle wie folgt aus:SQL Count mit Inner Join für Single Table
Name Id Amount
Name1 1 99
Name1 1 30
Name1 9 120.2
Name2 21 348
Name2 21 21
Name3 41 99
Ich möchte jeden Namen wählen, führen sie durch ihre ID und die Transaktionen zählen (NICHT SUM). Deshalb möchte ich die folgende Tabelle:
Name Id Count
Name1 1 2
Name1 9 1
Name2 21 2
Name3 41 1
Ich habe versucht, diese 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]
Aber ich erhalte den folgenden Fehler: Ambiguous column name 'Id'.
Was mache ich falsch?
Sie brauchen nicht wirklich die innere Verknüpfung. –
Siehe die Antwort unten von @JuanCarlosOropeza. Der Grund dafür, dass Sie diesen Fehler erhalten haben, ist, dass Sie in Ihrer Unterabfrage nicht wissen können, von welcher Tabelle Sie eine ID erhalten möchten. Denken Sie daran, dass die Unterabfrage AND und die Hauptabfrage beide im Bereich liegen. Sie müssen diese Unterabfrage auch mit der Hauptabfrage korrelieren. –