mysql数据统计查询,求解

数据记录表

id      type          uid       cteate_time

1        1            4416      2017-12-11 17:03:05
2        2            4416      2017-12-12 17:03:05
3        2            4416      2017-12-13 17:03:05
4        1            4415      2017-12-14 17:03:05
5        2            4415      2017-12-15 17:03:05
6        1            4415      2017-12-16 17:03:05
7        1            4415      2017-12-17 17:03:05
......

用户表

uid        username
4416        test1
4415        test2
......

现需要统计出如下数据:
按用户group by,统计每个用户,type=1 and 2的一共有多少条,type=1(即官方)的一共有多少条,type=2(即用户),并且统计出最近一次添加的时间(添加时间不区分type,无论添加的是官方的还是用户的,只想知道最新的一次的添加时间)

用户名       总数       官方        用户          最新添加时间
test1         3          1           2        2017-12-13 17:03:05
test2         4          3           1        2017-12-17 17:03:05

以上,希望有前辈能帮下,谢谢

阅读 3k
2 个回答
select 
user_name as '用户名',
count(1) as '总数',
sum(if(type=1,1,0)) as '官方',
sum(if(type=2,1,0))as '用户',
max(create_time) as '最后回复时间'
from d,u where d.uid=u.uid group by d.uid;

模拟数据库

这个我记得必须是做双重查询嵌套的……以前也碰上过类似需求,2表联查但是后表数据需要做个排序什么的。试了很多方案都不行只能老老实实嵌套……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题