[英]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.