最近在做一个查询统计,有个字段是操作类型,有新增、修改、删除、初始化...
要求做一个对各个地区各个操作动作的频率查询
TABLE t {
   I_AREA_ID number;
   I_TYPE number; 1新增 2修改 3删除 4初始化}小弟不知道要怎么查询得出下面格式的结果地区  新增次数  修改次数  删除次数 初始化次数  总次数
 1        X        X         X         X          X
 2        X        X         X         X          X 

解决方案 »

  1.   

    select _AREA_ID 地区,count(decode(I_TYPE,1,1,null)) 新增次数,count(decode(I_TYPE,2,1,null)) 修改次数,count(decode(I_TYPE,3,1,null)) 删除次数,count(decode(I_TYPE,4,1,null)) 初始化次数,count(*) 总次数
      from t
    group by _AREA_ID
      

  2.   

    select I_AREA_ID,
    count(decode(I_TYPE,1,1)) 新增次数,
    count(decode(I_TYPE,2,1)) 修改次数,
    count(decode(I_TYPE,3,1)) 删除次数,
    count(decode(I_TYPE,4,1)) 初始化次数,
    count(1) 总次数
    from t
    group by I_AREA_ID
      

  3.   

    select I_AREA_ID,
    count(decode(I_TYPE,1,1)) "新增次数",
    count(decode(I_TYPE,2,1)) "修改次数",
    count(decode(I_TYPE,3,1)) "删除次数",
    count(decode(I_TYPE,4,1)) "初始化次数",
    count(I_AREA_ID) "总次数"
    from t
    group by I_AREA_ID
      

  4.   

    不过查询结果后提示一个错误
    ORA-24347: 警告, 聚合函数中出现空列
      

  5.   

    试过了,你们3个都差不多
    还是提示聚合函数中出现空列,可是数据库中没有NULL值,不知道为甚么 
      

  6.   

    没关系了.应该是有的类型数据不存在.这样就会出现count(null)的情况出现.
    decode(字段,值1,目标值)和decode(字段,值1,目标值,null)是一样的.
    case也存在类似情况.oracle会自动补null
      

  7.   

    发现在记录中有些地区不是4种类型都有,有的是2种,3种
    decode在判断时会遇到空值的问题
    空列在结果中显示为0
    我想这个错误应该没什么影响吧