有张表数据如下:
aaa       高
bbb       低
aaa       低
aaa       高
bbb       低
bbb       高
需要得到下列结果,
          高    低
aaa       2     1
bbb       1     2
问 SQL 语句怎么写?? 

解决方案 »

  1.   

    with tt as (
      select 'aaa' id, '高' value from dual union all
      select 'bbb' id, '低' value from dual union all
      select 'aaa' id, '低' value from dual union all
      select 'aaa' id, '高' value from dual union all
      select 'bbb' id, '低' value from dual union all
      select 'bbb' id, '高' value from dual)SELECT id,
           COUNT(decode(VALUE, '高', 1)) 高,
           COUNT(decode(VALUE, '低', 1)) 低
      FROM tt
     GROUP BY id;
      

  2.   

    只告诉你的数据,也不说一下表的列名
    假设两个列名分别为 id,HD
    select id,sum(case when hd='高' then 1 else 0 end) 高,
               sum(case when hd='低' then 1 else 0 end) 低
    from 表
    group by id
      

  3.   

    decode  函数 和  count 函数  加上 group by的使用
      

  4.   

    还有两道题目,有代表性,大家都做下
    1)、表里有一些数据, 比如 语文 76分,数学 90分, 英语58分. 需要得到如下格式:
    语文       数学       英语
    及格       优秀       不及格
    其中<60, 不及格, >80 为优秀, 其余为及格. 问SQL 语句怎么写.2)、有三张表. 员工信息表, 有员工ID, 员工姓名等. 
    第二张是产品表, 有产品ID, 产品价格. 
    第三张是销售表, 有员工ID, 销售价格. 
    A. 列出销售成绩在2-10的员工信息。
    B. 列出销售人员在10以下的产品信息。
    C. 列出销售某件产品的销售额为前三的员工信息.
      

  5.   

    1.select (case when case '语文'>=80 then '优秀'
                when case '语文'>60 and '语文'<80 then '及格'
                else '不及格') 语文,
           (case when case '数学'>=80 then '优秀'
                 when case '数学'>60 and '数学'<80 then '及格'
                 else '不及格') 数学,
           (case when case '英语'>=80 then '优秀'
                when case '英语'>60 and '英语'<80 then '及格'
                else '不及格') 英语
       from table
    2. select a.id,a.name,b.销售价格
       from (
       select rownum row_num,a.id,a.name,b.销售价格
        from 员工表 a,销售表 b
        where a.id=b.id
        order by b.销售价格)t
       where t.row_num<=10
          and t.row_num>=2感觉你这些题应该是教科书上的,剩下的还是留给你自己做吧
      
        
      

  6.   

    题目有点问题:
    第二张是产品表, 有产品ID, 产品价格.  
    第三张是销售表, 有员工ID, 销售价格.----这两张表应该需要一个字段来关联,不然后面两题没法统计