搜索

首页  >  问答  >  正文

mysql group by多个字段

SELECT 
    用户ID,
    FROM_UNIXTIME(时间戳,'%Y%m') month 
FROM 
    table 
GROUP BY 
    month,用户ID
以上语句想在table表中查询出用户ID和月份,然后使用月份和用户ID(表中同一个用户ID可能出现多次)进行分组,如何在SELECT后添加一个数量字段再按月份统计出用户的数量?
ringa_leeringa_lee2782 天前923

全部回复(5)我来回复

  • 大家讲道理

    大家讲道理2017-04-17 15:09:43

    能不能别把问题也写在代码里。。。考虑一下用户体验啊。。。

    回复
    0
  • 怪我咯

    怪我咯2017-04-17 15:09:43

    对的,group by后面可以跟多个字段,用逗号分隔开就好。

    回复
    0
  • 黄舟

    黄舟2017-04-17 15:09:43

    楼主这句话(表中同一个用户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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-17 15:09:43

    用这样的形式 count(xxxx) as xxxx_num

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 15:09:43

    如果按楼主的要求 要把所有用户id 单列显示出来不太现实吧
    如果按月份统计用户的数量应该是
    SELECT COUNT(DISTINCT 用户ID) count,FROM_UNIXTIME(时间戳,'%Y%m') month FROM table GROUP BY month

    回复
    0
  • 取消回复