0
我們有兩列First_Issue和Expiry_IssueSQL集團按範圍
如果我想了解我有多少用戶,我們有問題1做這樣的查詢:
select COUNT(*) from Subscriber
where First_issue <= 1 and Expiry_issue >= 1
現在我想編寫一個查詢,顯示我們每個問題的用戶數量,不確定從哪裏開始,讚賞的指針。
我們有兩列First_Issue和Expiry_IssueSQL集團按範圍
如果我想了解我有多少用戶,我們有問題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
+1 - 我只是寫同樣的 - http://sqlfiddle.com/#!3/2dc83/6! – sgeddes 2014-09-20 00:20:28
什麼是在第一個問題的價值?你能定義值的含義嗎 – Tushar 2014-09-19 23:49:21
你能提供樣本數據和期望的結果嗎? – 2014-09-19 23:52:21
first_issue和last_issue是雜誌的刊號。所以,當我訂閱時,我可以訂閱問題12到16,所以first_issue將是12,expiry_issue 16 – Skiltz 2014-09-19 23:52:38