[英]SQL SERVER count distinct using Offset
使用此查询:
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;
和
SELECT make,Count(make)
FROM cars
WHERE active='true'
GROUP BY make
ORDER BY make ASC;
和
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;
全部归还不是我需要的
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.