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)
没有错误,但没有结果..
使用类似的聚合函数时,您需要按任何非聚合列进行分组:
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)