SELECT 用户ID, FROM_UNIXTIME(时间戳,'%Y%m') month FROM table GROUP BY month,用户ID
以上语句想在table表中查询出用户ID和月份,然后使用月份和用户ID(表中同一个用户ID可能出现多次)进行分组,如何在SELECT后添加一个数量字段再按月份统计出用户的数量?
ringa_lee
能不能別把問題也寫在程式碼裡。 。 。考慮一下使用者體驗啊。 。 。
對的,group by後面可以跟多個字段,用逗號分隔開就好。
樓主這句話(表中同一个用户ID可能出现多次),我可以理解成想取出每個月的不重複使用者數量嗎?
(表中同一个用户ID可能出现多次)
如果是的話Sql語句就是這樣的
SELECT COUNT(DISTINCT 用户ID) count,FROM_UNIXTIME(时间戳,'%Y%m') month FROM table GROUP BY month
如果不是的話就是這樣
SELECT COUNT(用户ID) count,FROM_UNIXTIME(时间戳,'%Y%m') month FROM table GROUP BY month
用這樣的形式 count(xxxx) as xxxx_num
如果按樓主的要求要把所有用戶id 單列顯示出來不太現實吧如果按月份統計用戶的數量應該是SELECT COUNT(DISTINCT 用戶ID) count,FROM_UNIXTIME(時間戳,' %Y%m') month FROM table GROUP BY month
能不能別把問題也寫在程式碼裡。 。 。考慮一下使用者體驗啊。 。 。
對的,group by後面可以跟多個字段,用逗號分隔開就好。
樓主這句話
(表中同一个用户ID可能出现多次)
,我可以理解成想取出每個月的不重複使用者數量嗎?如果是的話Sql語句就是這樣的
如果不是的話就是這樣
用這樣的形式 count(xxxx) as xxxx_num
如果按樓主的要求要把所有用戶id 單列顯示出來不太現實吧
如果按月份統計用戶的數量應該是
SELECT COUNT(DISTINCT 用戶ID) count,FROM_UNIXTIME(時間戳,' %Y%m') month FROM table GROUP BY month