我有一个数据表,里面有个字段cust_type客户类型,当值为'1'或是'A'时表示全球通,'3'和'C'时表示神州行,'M'表示动感地带.我现在要按cust_type统计用户量,显示格式如用户类型          用户量
------------------------------
全球通            12323
神州行            234234
动感地带          3232344用户量可以用count(*)

解决方案 »

  1.   

    测试表及数据:
    create table cust (cust_no int ,cust_type varchar(2))
    insert into cust values(1,'A');
    insert into cust values(2,'1');
    insert into cust values(3,'A');
    insert into cust values(4,'M');
    insert into cust values(5,'M');
    insert into cust values(6,'C');
    insert into cust values(7,'3');
    insert into cust values(8,'C');
    查询sql:
    select 客户类型,count(1) 用户量 from
    (
    select case  when (cust_type='A' or cust_type='1') then '全球通' when (cust_type='3' or cust_type='C') then '神州行' 
    else '动感地带' end 客户类型
    from cust
    ) temp
    group by 客户类型结果:
    客户类型  用户量
    动感地带     2
    全球通     3
    神州行     3
      

  2.   

    我想问一下,ORACLE支持case语句不?
      

  3.   

    SELECT DECODE(CUST_TYPE,'M','动感地带','1','全球通','A','全球通','3',神州行,'C','神州行','其他'),
    COUNT(*) AS 用户量
    FROM TABLE_NAME
    GROUP BY DECODE(CUST_TYPE,'M','动感地带','1','全球通','A','全球通','3',神州行,'C','神州行','其他')