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