跪求sql。该怎么解决

跪求sql。。。IDCODE11224KYFAWT12215KYFAHS12215KYFAHS12220KYFAWT12501JHRWSXD12220KYFAHS12210KYFAHS12501

跪求sql。。。
ID CODE

11224KYFAWT
12215KYFAHS
12215KYFAHS
12220KYFAWT
12501JHRWSXD
12220KYFAHS
12210KYFAHS
12501KYFAWT
11224KYFAWT
12220KYFAWT

写段sql,求每个ID对应不同code的个数
数据库初学者,各位帮帮我啊

[解决办法]

SQL code
insert into table1(id,code) values('11224','KYFAWT');insert into table1(id,code) values('12215','KYFAHS');insert into table1(id,code) values('12215','KYFAHS');insert into table1(id,code) values('12220','KYFAWT');insert into table1(id,code) values('12501','JHRWSXD');insert into table1(id,code) values('12220','KYFAHS');insert into table1(id,code) values('12210','KYFAHS');insert into table1(id,code) values('12501','KYFAWT');insert into table1(id,code) values('12501','KYFAWT');insert into table1(id,code) values('11224','KYFAWT');insert into table1(id,code) values('12220','KYFAWT');commit;select distinct id,count(distinct code) over (partition by id) from table1 order by id;--结果1    11224    12    12210    13    12215    14    12220    25    12501    2
[解决办法]
SQL code
SELECT ID,       SUM(CASE CODE WHEN 'KYFAWT' THEN 1 ELSE 0 END) AS KYFAWT,       SUM(CASE CODE WHEN 'KYFAHS' THEN 1 ELSE 0 END) AS KYFAHS,       SUM(CASE CODE WHEN 'JHRWSXD' THEN 1 ELSE 0 END) AS JHRWSXDFROM TABLE1GROUP BY IDORDER BY ID;
[解决办法]
1、如果code确定可以
select id,
sum(decode(code, 'KYFAWT', total, 0)) as code_A,
sum(decode(code, 'KYFAHS', total, 0)) as code_B
...
from (SELECT ID, code, COUNT(1) as total FROM YOUR_TABLE GROUP BY ID, code);

2、如果不确定 采用动态SQL了