如果是通常行边列的问题.
可以用decode解决.
可以用decode解决.
解决方案 »
- flash_recovery_area空间不足
- ORACLE释放undo表空间
- 那位兄弟推荐几本oracle的书,比较深入的,一方面是开发的,一方面是数据库管理的
- SQL查询语句问题,高手指教
- sql server数据库迁移到ORACLE!
- 请问在本机上安装oracle8i的server端和client端后如何才能打开sql*plus呢?我在网上找了半天都没看到。
- developer2000的疑惑
- SQLPlus Worksheet不能进入
- 动态SQL创建视图,在SQLPLUS中可以,写到存储过程中则运行报错
- 请问如何利用Oracle8i将数据表的数据导出到文本文件中?
- 大家好,国庆节快乐!问一个关于UPDATE语句的问题?
- 明明非法的存储过程,pl/sql developer居然可以生成,没有任何提示。 ???
min(decode(b,'b2',a,null)),
min(decode(b,'b3',a,null))
from tab1
group by c
<b,c>={b1,c1},{b1,c2},{b1,c3},{b2,c1}.....的各有多少个。有难度,还没想出来:)
count(decode(b,'b2',a,null)),
count(decode(b,'b3',a,null))
from tab1
group by c;------------------------------------------------------------
试验过程:drop sequence seq_zhj;
create sequence seq_zhj start with 1;
drop table test;
create table test(a number,b varchar2(10),c varchar2(10));
insert into test values (seq_zhj.nextval,'b1','c1');
insert into test values (seq_zhj.nextval,'b2','c2');
insert into test values (seq_zhj.nextval,'b3','c3');
insert into test values (seq_zhj.nextval,'b1','c2');
insert into test values (seq_zhj.nextval,'b1','c3');
insert into test values (seq_zhj.nextval,'b2','c1');
insert into test values (seq_zhj.nextval,'b3','c1');
insert into test values (seq_zhj.nextval,'b1','c3');
insert into test values (seq_zhj.nextval,'b1','c2');
insert into test values (seq_zhj.nextval,'b1','c1');
insert into test values (seq_zhj.nextval,'b2','c1');
insert into test values (seq_zhj.nextval,'b2','c2');
insert into test values (seq_zhj.nextval,'b1','c2');
insert into test values (seq_zhj.nextval,'b3','c1');
insert into test values (seq_zhj.nextval,'b3','c1');
commit;SQL> @c:\test.sql序列已丢弃。
序列已创建。
表已丢弃。
表已创建。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
已创建 1 行。
提交完成。SQL> select c,count(x.b) b1 from test x where x.b = 'b1' group by x.c;C B1
---------- ----------
c1 2
c2 3
c3 2 SQL> select c,count(y.b) b2 from test y where y.b = 'b2' group by y.c;C B2
---------- ----------
c1 2
c2 2 SQL> select c,count(z.b) b3 from test z where z.b = 'b3' group by z.c;C B3
---------- ----------
c1 3
c3 1 SQL> select c,count(decode(b,'b1',a,null)) b1,
2 count(decode(b,'b2',a,null)) b2,
3 count(decode(b,'b3',a,null)) b3
4 from test
5 group by c;C B1 B2 B3
---------- ---------- ---------- ----------
c1 2 2 3
c2 3 2 0
c3 2 0 1 -------------------------------------------------------------
应该达到目的了吧?嘿嘿!