情况是这样,大概简化描述一下,表中记录有 deviceNo, flag 字段,
我希望拿到像这样的结果
deviceNo(设备号),  count(flag == all), count(flag == 1), count(flag == 2,4)
比如:
1A  100  20   30
2A  20   1    2
3A  30   1    22
  
就像这样,
不知我描述清楚了没有,
求各位看能否给出一条SQL达到要求,
很急,在线求!~  

解决方案 »

  1.   

    SELECT deviceNo, COUNT(NF1) AS C1, COUNT(NF2) AS C2, COUNT(NF3) AS C3
      FROM (SELECT deviceNo,
                   flag,
                   'A' AS NF1,
                   DECODE(flag, '1', 'B') AS NF2,
                   DECODE(flag, '2', 'C', '4', 'C') AS NF3
              FROM TEST)
     GROUP BY deviceNo试试看