需要关于看似简单的SQL查询的提示

Mar*_*oDS 2 sql select count sql-server-2008-r2

我正在尝试做类似的事情:

SELECT c.id, c.name, COUNT(orders.id)
FROM customers c
JOIN orders o ON o.customerId = c.id
Run Code Online (Sandbox Code Playgroud)

但是,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
Run Code Online (Sandbox Code Playgroud)

没有错误,但没有结果..

Eri*_*lje 5

使用类似的聚合函数时,您需要按任何非聚合列进行分组:

SELECT c.id, c.name, COUNT(orders.id)
FROM customers c
JOIN orders o ON o.customerId = c.id
GROUP BY c.id, c.name
Run Code Online (Sandbox Code Playgroud)