欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

一路sql面试题,求解答

更新时间: 2014-01-05 02:11:55 责任编辑: Author_N1

 

一道sql面试题,求解答
tableA(地区表)
colA(地区id) colB(上级地区id)colC(地区名称)
tableB(人员情况表)
colD(人员ic) colE(人员名称) colA(所属地区) colG(人员成本) colH(性别)

1.全国所有人员成本最高的第10名到第20名。

2.所有人员成本总和大于2000的市,按照成本合计由高到低顺序。

3.输入一个地区id,在sql中使用?代替,查询这个地区所有本下级地区包含人数总和,输出格式:地区名称,人数。例如,输入国家id,则输出全国所有市区人数之和;输入北京id,则输出北京所有市区之和;输入海淀区id,则输出这个区人数之和。

4.假设tableA中数据固定为示例数据,性别1为男,0为女。查询输出:
              北京           上海
男           所有人数之和    所有人数之和
女           所有人数之和    所有人数之和
--参考方法--
1.全国所有人员成本最高的第10名到第20名。
SELECT *
FROM (
        SELECT colE(人员名称), colG(人员成本), row_number() over (ORDER BY colG(人员成本)) AS seq
        FROM  tableB
    )
WHERE seq >= 10 AND seq <= 20

 
2.所有人员成本总和大于2000的市,按照成本合计由高到低顺序。
SELECT colC, colg
FROM (
    SELECT a.colC, SUM(b.colG) AS colg
    FROM tableB b
        , tableA a
    WHERE a.colA = b.colA
    GROUP BY a.colC
)
WHERE colg > 2000
ORDER BY colg DESC;
 
3.输入一个地区id,在sql中使用?代替,查询这个地区所有本下级地区包含人数总和,输出格式:地区名称,人数。例如,输入国家id,则输出全国所有市区人数之和;输入北京id,则输出北京所有市区之和;输入海淀区id,则输出这个区人数之和。

SELECT t.*
    , (
        SELECT SUM(b.colG) AS colg
        FROM tableB b
            , (
                SELECT t.*, LEVEL
                FROM tableA t
                WHERE LEVEL >= 2
                START WITH colA = 地区ID
                CONNECT BY PRIOR colA = colB
              ) a
        WHERE a.colA = b.colA
      ) AS colg
FROM tableA t
WHERE colB = 地区ID

4.假设tableA中数据固定为示例数据,性别1为男,0为女。查询输出:
               北京           上海
 男           所有人数之和    所有人数之和
 女           所有人数之和    所有人数之和 
 
SELECT sex
    , CASE sex
          WHEN '男' THEN 
            (
                SELECT SUM(b.colG) AS colg
                FROM tableB b
                    , (
                        SELECT t.*, LEVEL
                        FROM tableA t
                        WHERE LEVEL >= 2
                        START WITH colA = 北京ID
                        CONNECT BY PRIOR colA = colB
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6845/
本文WWW.DOC100.NET DOC100.NET版权所有。