saya_sj
2009-03-26 14:22
浏览 326
已采纳

MySQL 查询问题(挑高手)

两个字段:
userid , sysid
123 , 1
123 , 1
123 , 2
123 , 2
124 , 3
124 , 3
124 , 4
124 , 4
125 , 5
126 , 8
126 , 8
126 , 8

以上数据,怎么样能查询出来结果为:
userid, sysid_times
123 ,2
124 ,2
125 ,1
126 ,3

注:同一Userid只统计不同的sysid的个数.如:userid 在表中一共有四条数据.如:sysid为1出现了两次算一次,sysid为2出现了两次算一次,
同理,其它的也一样.结果如上.
数据库为:Mysql 5 ,要求SQL的效率尽可能高.
请高手赐上SQL 语句.谢谢.

[b]问题补充:[/b]
不好意思,结果写错了一个,我要的结果应为:
123 ,2
124 ,2
125 ,1
126 ,1

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • xombat 2009-03-26 16:04
    已采纳

    [code="java"]select userid, count(distinct sysid) from asks group by userid[/code]
    不用子查询,也不用那么多group。

    点赞 打赏 评论
  • langhua9527 2009-03-26 14:50

    [code="java"]select distinct userid,count(sysid) from asks group by userid,sysid;[/code]
    一定都不难,思路一定要清淅。。别忘了给分哦

    点赞 打赏 评论
  • langhua9527 2009-03-26 15:13

    [code="java"]
    select t.userid,count(t.sysid) from
    (select distinct userid,sysid from asks) t
    group by t.userid
    [/code]

    点赞 打赏 评论
  • langhua9527 2009-03-26 15:14

    asks就是你上面的那个表

    点赞 打赏 评论

相关推荐 更多相似问题