2016-01-28 37 views
-2

在我的db中,我有2個表格:用戶和帳戶。每個用戶帶來幾個帳戶。 (用戶擁有用戶名和帳戶擁有用戶名,帳戶ID和createTime)mysql獲取列數不斷變化的表格

我需要一個SQL查詢,顯示我的用戶統計數據:一個表,每很多賬戶是如何每月上創建的,並是用戶的名稱。

我可以這樣做嗎?

+0

你到目前爲止嘗試過什麼?從你寫的內容來看,'users'表不需要甚至是查詢的一部分,因爲它只包含一個ID。 –

+1

@TimBiegeleisen,Comeon ...他希望我們爲他做這項工作。你沒看到他說:*我需要得到一個SQL查詢,顯示* :) – Rahul

+0

我甚至不知道如何開始...... @TimBiegeleisen。我不知道如何做一個列數不斷變化的查詢 – Joe3322

回答

2

像下面這樣的東西應該爲你工作:

SELECT UserId, DATE_FORMAT(CreatedTime, '%Y-%m'), COUNT(*) AS numAccountsPerUserPerMonth 
FROM accounts 
WHERE YEAR(createTime) = 2016 
GROUP BY UserId, DATE_FORMAT(CreatedTime, '%Y-%m') 
ORDER BY DATE_FORMAT(CreatedTime, '%Y-%m') DESC, UserId 
+0

如何在同一個月差異年? – hvnis

+2

DATE_FORMAT(CreatedTime,'%Y-%m')@hvnis – Joe3322

+0

我理解這個解決方案。它確實解決了這個問題,但這實際上並不是我問的問題。我問我是否可以做一個查詢,他的列是用戶標識,行是月,在每個單元中都有opend帳戶的數量,我實際上寫了一些東西就像上面的評論一樣...但感謝您的解決方案。 – Joe3322

2

這應該做你想要什麼:

SELECT UserId, YEAR(createTime) as YEAR, MONTH(createTime) as MONTH, COUNT(*) AS accCounter 
FROM accounts 
GROUP BY UserId, YEAR(createTime), MONTH(createTime) 

這會給你爲每個用戶在一個月內有多少帳戶開設了數。