2017-06-13 69 views
1

我使用MYSQL,並且我有一個用戶數據庫表,我的註冊用戶存儲在這裏。我很想看看有多少用戶在每個季度的日益增長的時間表上註冊。因此,也許2016年第一季度我總共有1000個用戶,然後在2016年第二季度我有2000個用戶註冊,2016年第三季度註冊4000個用戶總數等等(所以我想看看增加量,而不是每季度註冊多少)SQL在我的用戶表中每個季度+年的增長

從另一個堆棧溢出後,我就能夠創建一個查詢你每天看到它:

select u.created, count(*) 
from (select distinct date(DateCreated) created from `Users`) u 
join `Users` u2 on u.created >= date(u2.DateCreated) 
group by u.created 

,這工作的每一天,但我想現在季度及全年組吧。我嘗試在mysql中使用QUARTER(d)函數,甚至在QUARTER(d)+ YEAR(d)中進行連接,但仍然無法正確獲取數據(count(*)最終產生令人難以置信的高值)。

任何人都可以幫助我按季度/年來分組我的數據嗎?我的時間戳列名爲dateCreated會(它以毫秒爲Unix時間戳,所以我必須用1000除以太)

非常感謝

+0

編輯你的問題,並提供樣本數據和所需的重試。 –

回答

2

我會建議使用相關子查詢 - 這可以讓你輕鬆地定義每個行在結果集中。我認爲這是你想要的邏輯:

select dates.yyyy, dates.q, 
     (select count(*) 
     from Users u 
     where u.DateCreated < dates.mindc + interval 3 month 
     ) as cnt 
from (select year(DateCreated) as yyyy, quarter(DateCreated) as q 
      min(DateCreated) as mindc 
     from Users u 
     group by year(DateCreated), quarter(DateCreated) 
    ) dates; 
+0

非常感謝。這做到了!你太聰明瞭。 – NullHypothesis

相關問題