Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL SERVER计数使用偏移量进行区分_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

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;