PHP面试题目

29个成员

作者出书归类统计

发表于 2015-12-04 1338 次查看

表books结构数据如下:

id    user   book

1    ccc    1
2    ccc    2
3    ccc    3
4    pp    1
5    pp    2
6    pp    4
7    yy    1
8    yy    2
9    tt    1
10    tt    2
11    tt    3
12    tt    4
13    oo    1
14    oo    2
15    oo    3

请通过一条sql统计出满足字段book 同时包含了 1,2,3 相对应的作者。

 

8回复
  • 2楼 阿磊 2015-12-04

    其实思路很多的。。终于写出来了。。

    如果想用in(  )来写,怎么写呢。

     

     

     

  • 3楼 阿磊 2015-12-04

     

    第一天完成老师布置的作业。哈哈。。。一个个插入数据的。。

    感谢这个平台,真心不错,题目也相当给力,让你联想无限想法,各种尝试。。

     

  • 4楼 孤云 2015-12-04

    SELECT b.user ,COUNT(*) as "出现次数" FROM books
    as b WHERE b.book IN (1,2,3) GROUP BY b.`user` HAVING COUNT(*) = 3 ORDER BY  COUNT(*) desc

  • 5楼 野人 2015-12-04

     

    我读书少,可能没理解题意laugh,不知道这样算不算?

    • 野人 2015-12-04
      SELECT *,GROUP_CONCAT(book order by book asc) as cont from books group by user having cont like "1,2,3%" ; //作了排序了
  • 6楼 孤云 2015-12-04

    select * from (
    select a.`user`, count(*) as 'c' from (
    select b.`user` from books b WHERE
    b.book = '1' GROUP BY b.`user`
    UNION ALL
    select b.`user` from books b where
    b.book = '2' GROUP BY b.`user`
    UNION ALL
    select b.`user` from books b where
    b.book = '3' GROUP BY b.`user`
    ) a GROUP BY a.`user`
    ) b where c >= 3

    此题目 其实十分复杂经检测 如果 相同数据则传统做法无法实现,特此对我作业做了更新 ,本人经过测试 ,此算法 为万能不会出错。

  • 7楼 朕扮皇 2015-12-04

    select user from text where book in(1,2,3) group by user having count(*) >= 3;

发表回复
你还没有登录,请先登录注册

加入我们吧,一起学习QQ群516033298