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