我試着這樣做:需要提示上看似簡單的SQL查詢
SELECT c.id, c.name, COUNT(orders.id)
FROM customers c
JOIN orders o ON o.customerId = c.id
但是,SQL不會允許COUNT函數。執行過程中出現的錯誤是,c.Id在選擇列表中無效,因爲它不在group by子句中,或者未被聚合。
我想我知道這個問題,COUNT只是統計了全部表中的行數orders
。我怎樣才能爲每個客戶計數?
編輯
全面查詢,但它在荷蘭的...這是我的嘗試:
select k.ID,
Naam,
Voornaam,
Adres,
Postcode,
Gemeente,
Land,
Emailadres,
Telefoonnummer,
count(*) over (partition by k.id) as 'Aantal bestellingen',
Kredietbedrag,
Gebruikersnaam,
k.LeverAdres,
k.LeverPostnummer,
k.LeverGemeente,
k.LeverLand
from klanten k
join bestellingen on bestellingen.klantId = k.id
沒有錯誤,但沒有結果要麼..
您需要在查詢結尾處使用「GROUP BY c.id,c.name」。 –
您還在'orders'表上缺少別名(上面的查詢無法編譯)。這導致所有的答案都有無效的語法。 –
@AaronBertrand這是無意的,現在修復。 – MarioDS