锁定老帖子 主题:赴盛大面试,分享几个面试题
精华帖 (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方了吧,应该不是最优,尤其是在大数据库的情况下 |
|
返回顶楼 | |
发表时间:2010-12-05
觉得整体过程还蛮简单的,其实那个SQL语句 想考你聚合函数吧
如果想考优化SQL就直接提出要求了 |
|
返回顶楼 | |
发表时间: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查询? |
|
返回顶楼 | |
发表时间:2010-12-05
(A(B)(C(D)(E))F)
可以用一行正则表达式做 |
|
返回顶楼 | |
发表时间: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
|
|
返回顶楼 | |
发表时间:2010-12-05
第8道,要是用oracle数据库,有个over函数最方便,不需要子查询。
第9道,easy,直接遍历字符串,找到第N个(,然后用计数器统计接下来(的个数,遇到)计数器--,等计数器为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); |
|
返回顶楼 | |
发表时间: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 , 思路倒是打开了。
谢谢高手们的指点。
|
|
返回顶楼 | |
发表时间:2010-12-05
[quote="黑暗浪子"]
看见第1题我就想起六月份去盛大面试那次了。这个问题也问过我,我直接回答:孔乙己老是问人家茴字有几种写法,你还记得你老师教过你这4种写法吗?然后面试官就问下一个问题。这年头面试可真是很让我哭笑不得,这种nc问题也问得出,是不是随便拉个人就可以做面试官了? 第一题没觉得哪里老残了,这些经常要用到啊。 |
|
返回顶楼 | |
发表时间:2010-12-06
一个研究生的同学明年毕业,基本拿到盛大的offer了,很好~
|
|
返回顶楼 | |