锁定老帖子 主题:sql面试题
精华帖 (0) :: 良好帖 (1) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-30
select t.* from table_name t1 join
( select sprovince, avg(smoney) avg_smoney from table_name group by sprovince ) t2 on (t1.sprovince = t2.sprovince and t1.smoney > t2.avg_smoney); create table new_table_name as select avg_smoney, sprovince from (select avg(smoney) avg_smoney, sprovince from table_name group by sprovince); |
|
返回顶楼 | |
发表时间:2009-12-29
明显送分题嘛
|
|
返回顶楼 | |
发表时间:2010-01-02
select a.id,a.sname,a.sprovince,b.avg_money from table_a a,( select avg(smoney) avg_money,sprovince from table group by sprovince )b where a.sprovince=b.sprovince and a.smoney >b.avg_money /* 新表table_已存在时的情况,如果新表不存在则按照楼上那些朋友的方法 create tabe_b(avg_money,sprovince) */ insert into tabe_b values( select avg(smoney),sprovince from table group by sprovince ); |
|
返回顶楼 | |
发表时间:2010-01-03
多老的帖子了
|
|
返回顶楼 | |
发表时间:2010-01-06
第一道:显示出 业绩 大于同一地区平均值的 合同id 姓名 地区 业绩
SELECT A.ID, A.SNAME, A.SPROVINCE, A.SMONEY FROM TT A WHERE SMONEY > (SELECT SUM(B.SMONEY) / COUNT(1) FROM TT B WHERE B.SPROVINCE = A.SPROVINCE); ID SNAME SP SMONEY ---------- -------------------- -- ---------- 3 WANGWU C 6789 5 DONGJIU B 3298 6 SHIGA A 4567 第二道:把同一地区的 平均业绩 地区 插入到新表中 (新表只包含两个字段即:平均业绩 地区) CREATE TABLE TT_SUM AS SELECT SPROVINCE, SUM(SMONEY)/COUNT(1) AVG_PRO FROM TT GROUP BY SPROVINCE; SQL> select * from tt_sum; SP AVG_PRO -- ---------- A 3332.5 B 3149 C 5688 注:自己扩展了几道问题(五道),欢迎浏览。 http://blog.chinaunix.net/u1/53979/showart.php?id=2142515 |
|
返回顶楼 | |
发表时间:2010-01-28
cartonwang 写道 第一道:显示出 业绩 大于同一地区平均值的 合同id 姓名 地区 业绩
select t2.id,t2.name,t2.province,t2.money, t1.avg_money from t_employee t2, (select t.province, avg(t.money) avg_money from t_employee t group by t.province) t1 where t2.province = t1.province and t2.money > t1.avg_money 第二道:把同一地区的 平均业绩 地区 插入到新表中 (新表只包含两个字段即:平均业绩 地区) create table t_employee_avg as (select avg(e.money) avg_money, e.province from t_employee e group by e.province); ----------------------- 看见去年我的回复了,一年过去了,我也开始找工作了。祝福自己能找到自己满意的工作吧! |
|
返回顶楼 | |
发表时间:2010-01-29
MySQL 5.1通过:
1.SELECT b.smoney,b.sprovince FROM test.biz_tbl b inner join (select avg(smoney) as avgMoney,sprovince as sprovinceId from test.biz_tbl a group by sprovince) c on b.sprovince = c.sprovinceId and b.smoney > c.avgMoney 2.insert into test.avgmoney_tbl (avgmoney,sprovince) SELECT b.smoney,b.sprovince FROM test.biz_tbl b inner join (select avg(smoney) as avgMoney,sprovince as sprovinceId from test.biz_tbl a group by sprovince) c on b.sprovince = c.sprovinceId and b.smoney > c.avgMoney |
|
返回顶楼 | |
发表时间:2010-02-10
thinkaw 写道 第一道 SELECT A.ID, A.SNAME, A.SPROVINCE, A.SMONEY FROM TT A WHERE SMONEY > (SELECT SUM(B.SMONEY) / COUNT(1) FROM TT B WHERE B.SPROVINCE = A.SPROVINCE); 第二道 CREATE TABLE TT_SUM AS SELECT SPROVINCE, SUM(SMONEY)/COUNT(1) AVG_PRO FROM TT GROUP BY SPROVINCE; 相关子查询 子查询建表 |
|
返回顶楼 | |