[英]SQL Group By Range
我們有兩列First_Issue和Expiry_Issue
如果我想找出問題1的訂閱者人數,可以執行以下查詢:
select COUNT(*) from Subscriber
where First_issue <= 1 and Expiry_issue >= 1
現在,我想編寫一個查詢,向我顯示每個問題的訂戶數量,不確定確切的起點,贊賞任何指針。
如果在issues
表中沒有可用的所有問題編號,則可以這樣生成它們:
WITH Issues AS (
SELECT 1 as Number
UNION ALL
SELECT Number + 1 as Number
FROM Issues WHERE Number + 1 <= (SELECT MAX(Expiry_Issue) FROM Subscriber)
)
SELECT issue.Number, COUNT(DISTINCT s.id)
FROM
Subscriber s INNER JOIN
Issues i ON i.Number BETWEEN s.First_Issue AND s.Expiry_Issue
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.