简体   繁体   English

SQL Server计数使用偏移量来区分

[英]SQL SERVER count distinct using Offset

With this query: 使用此查询:

SELECT ID,Make,Model 
FROM cars 
WHERE active='true'  
ORDER BY make ASC, model ASC 
OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY;

I got this result: 我得到了这个结果:

ID          Make         Model
26800911    AIXAM       CROSSLINE
26796643    AIXAM       PREMIUM
26700448    ALFA ROMEO  145
26796420    ALFA ROMEO  147
26480721    ALFA ROMEO  147

How to write query to get from this result Count of Each make? 如何编写查询从该结果中获取每个make的计数? So i need to have AIXAm = 2, Alfa Romeo = 3 所以我需要AIXAm = 2,Alfa Romeo = 3

Thoose one return all result without Offset Limit 选择一个返回所有结果而没有偏移限制

SELECT make,SUM(CASE WHEN active='true' THEN 1 ELSE 0 END) 
FROM cars 
WHERE active='true' 
GROUP BY make 
ORDER BY make ASC;

AND

SELECT make,Count(make) 
FROM cars 
WHERE active='true' 
GROUP BY make 
ORDER BY make ASC;

AND

SELECT TOP 5 make,SUM(CASE WHEN active='true' THEN 1 ELSE 0 END) 
FROM cars 
WHERE active='true' 
GROUP BY make 
ORDER BY make ASC;

All return not what i need 全部归还不是我需要的

AIXAM       2
ALFA ROMEO  106
ALPINA      1
AUDI        686
BMW         557

You can try with a subquery: 您可以尝试使用子查询:

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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM