首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

一个关于sql语句怎么实现有关问题

2012-01-09 
一个关于sql语句如何实现问题表如下:tableAbureau_idfield1100A100A100B101A101B101A101A我希望查询结果为

一个关于sql语句如何实现问题
表如下:tableA
bureau_idfield1
100 A
100 A
100 B
101 A
101 B
101 A
101 A
我希望查询结果为:
bureau_id count(*) fieldA
100 3 2
101 4 3

也就是以bureau_id分组查询出每组的总数 select count(*) from tableA group by bureau_id 这样得到已bureau_id分组的数据
bureau_idcount(*)
1003
1014
同事也要得到以bureau_id分组的同值的field1的数据select count(*) from tableA group by bureau_id,field1 having field1=‘A’并和上面查询结果做对应。

不知道我的问题描述明白了没有?希望大家给各帮助。

[解决办法]
try it ..

SQL code
SQL> select bureau_id,  2         count(1) as all_counts,  3         sum(decode(field1,'A',1,0)) as A_counts  4    from tableA tt  5   group by bureau_id; BUREAU_ID ALL_COUNTS   A_COUNTS---------- ---------- ----------       100          3          2       101          4          3
[解决办法]
try it ..

SQL code
SQL>  select *  2     from tableA tt; BUREAU_ID FIELD1     FIELD2     FIELD3---------- ------ ---------- ----------       100 A               1          2       100 A               3          2       100 B               7          5       101 A               2          3       101 B               6          6       101 A              11          9       101 A              17          87 rows selectedSQL> SQL> select bureau_id,  2         count(1) as all_counts,  3         sum(decode(field1,'A',1,0)) as a_counts,  4         sum(decode(sign(field2-field3),1,1,0)) as field2_large_than_field3  5    from tableA tt  6   group by bureau_id; BUREAU_ID ALL_COUNTS   A_COUNTS FIELD2_LARGE_THAN_FIELD3---------- ---------- ---------- ------------------------       100          3          2                        2       101          4          3                        2SQL> 

热点排行