簡體   English   中英

SQL按范圍分組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM