84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
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