SQL SERVER计数使用偏移量进行区分
使用此查询:SQL SERVER计数使用偏移量进行区分,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,使用此查询: SELECT ID,Make,Model FROM cars WHERE active='true' ORDER BY make ASC, model ASC OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY; 我得到了这个结果: ID Make Model 26800911 AIXAM CROSSLINE 26796643 AIXAM PREMIUM 26700448
SELECT ID,Make,Model
FROM cars
WHERE active='true'
ORDER BY make ASC, model ASC
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY;
我得到了这个结果:
ID Make Model
26800911 AIXAM CROSSLINE
26796643 AIXAM PREMIUM
26700448 ALFA ROMEO 145
26796420 ALFA ROMEO 147
26480721 ALFA ROMEO 147
如何编写查询以从每个make的结果计数中获取?
所以我需要AIXAm=2,Alfa Romeo=3
其中一个返回所有结果,无偏移限制
SELECT make,SUM(CASE WHEN active='true' THEN 1 ELSE 0 END)
FROM cars
WHERE active='true'
GROUP BY make
ORDER BY make ASC;
及
及
所有的回报都不是我所需要的
AIXAM 2
ALFA ROMEO 106
ALPINA 1
AUDI 686
BMW 557
您可以尝试使用子查询:
SELECT q.Make, Count(q.ID)
FROM
(
SELECT ID,Make,Model
FROM cars
WHERE active='true'
ORDER BY make ASC, model ASC
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY
) AS q
GROUP BY q.make
ORDER BY q.make ASC;
对这才是我真正需要的谢谢
AIXAM 2
ALFA ROMEO 106
ALPINA 1
AUDI 686
BMW 557
SELECT q.Make, Count(q.ID)
FROM
(
SELECT ID,Make,Model
FROM cars
WHERE active='true'
ORDER BY make ASC, model ASC
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY
) AS q
GROUP BY q.make
ORDER BY q.make ASC;