论坛首页 招聘求职论坛

赴盛大面试,分享几个面试题

浏览 21708 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-05  
jancy 写道
0704681032 写道
第一步 找出符合条件的userid
   select userid from user group by userid having sum(order_amount)>100
然后一个in
select orderid from order where userid in 上面的那个表


除了这个,我也确实没有想出其他的好办法。

感谢各位大虾的指点。

虽然没想出办法,但是要是用in的话,就像嵌套for循环一样导致复杂度为n方了吧,应该不是最优,尤其是在大数据库的情况下
0 请登录后投票
   发表时间:2010-12-05  
觉得整体过程还蛮简单的,其实那个SQL语句 想考你聚合函数吧

如果想考优化SQL就直接提出要求了
0 请登录后投票
   发表时间:2010-12-05  
jancy 写道
0704681032 写道
第一步 找出符合条件的userid
   select userid from user group by userid having sum(order_amount)>100
然后一个in
select orderid from order where userid in 上面的那个表


除了这个,我也确实没有想出其他的好办法。

感谢各位大虾的指点。


为什么不可以用2个表的join查询?
0 请登录后投票
   发表时间:2010-12-05  
(A(B)(C(D)(E))F)

可以用一行正则表达式做
0 请登录后投票
   发表时间:2010-12-05  
SELECT GROUP_CONCAT(order_id) as order_Id,SUM(order_amount) as amount FROM order WHERE 1 GROUP BY user_id HAVING amount > 100
0 请登录后投票
   发表时间:2010-12-05  
第8道,要是用oracle数据库,有个over函数最方便,不需要子查询。

第9道,easy,直接遍历字符串,找到第N个(,然后用计数器统计接下来(的个数,遇到)计数器--,等计数器为0,切当前字符为),查找结束。
0 请登录后投票
   发表时间:2010-12-05   最后修改:2010-12-05
0704681032 写道
第一步 找出符合条件的userid
   select userid from user group by userid having sum(order_amount)>100
然后一个in
select orderid from order where userid in 上面的那个表

依据上面的思路,写了一个嵌套子查询


mysql> select * from dingdan where user_id in (select t.user_id from (select user_id,
sum(order_amount) from dingdan group by user_id having sum(order_amount) > 100) t);





  • 大小: 15.4 KB
  • 大小: 15.3 KB
  • 大小: 15.5 KB
0 请登录后投票
   发表时间:2010-12-05  
dodomail 写道
0704681032 写道
第一步 找出符合条件的userid
   select userid from user group by userid having sum(order_amount)>100
然后一个in
select orderid from order where userid in 上面的那个表

依据上面的思路,写了一个嵌套子查询


mysql> select * from dingdan where user_id in (select t.user_id from (select user_id,
sum(order_amount) from dingdan group by user_id having sum(order_amount) > 100) t);







原本想到的是:

SELECT `order_id` FROM `order` WHERE `user_id` IN (SELECT user_id FROM `order` GROUP BY `user_id` HAVING SUM(order_amount)>100)

 

不过貌似不是最优的,Tony兄 说用 GROUP_CONCAT , 思路倒是打开了。

 

谢谢高手们的指点。

 

0 请登录后投票
   发表时间:2010-12-05  
[quote="黑暗浪子"]

看见第1题我就想起六月份去盛大面试那次了。这个问题也问过我,我直接回答:孔乙己老是问人家茴字有几种写法,你还记得你老师教过你这4种写法吗?然后面试官就问下一个问题。这年头面试可真是很让我哭笑不得,这种nc问题也问得出,是不是随便拉个人就可以做面试官了?



第一题没觉得哪里老残了,这些经常要用到啊。
0 请登录后投票
   发表时间:2010-12-06  
一个研究生的同学明年毕业,基本拿到盛大的offer了,很好~
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics