日期:2014-05-17  浏览次数:20700 次

数据库面试题

1、第一题可以根据部门ID分组,以decode的方式实现
2、第二题怎么做?
------解决方案--------------------
用最小值大于7判断即可,需要的话,一会我给你写sql
------解决方案--------------------

SELECT 部门
  FROM A 
 WHERE 业绩 > 7
 GROUP BY 部门
HAVING COUNT(1) = (SELECT COUNT(DISTINCT 月份) FROM A)

------解决方案--------------------
select t1.depart,count(*) from (select * from t where t.yeji>7) t1
group by t1.depart
having count(*)=(select count(distinct mth) from t);

------解决方案--------------------
先统计出各部门业绩大于7的月份次数,然后比较次数和总月份的值
 SELECT * FROM A 
       select T.部门 FROM 
       (SELECT A.部门,COUNT(A.月份) 次数 from A WHERE A.业绩>7 GROUP BY A.部门) T 
       WHERE T.次数=( select count( distinct a.月份) from a)