龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库分析函数应用实例之查找状态全为1的ID

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
Oracle 数据库 分析函数 应用实例之查找状态全为1的ID是本文我们主要要介绍的内容,通过本文的例子让我们来一起了解一下Oracle数据库分析函数的使用吧,希望能够对您有所帮助。 实例

Oracle数据库分析函数应用实例之查找状态全为1的ID是本文我们主要要介绍的内容,通过本文的例子让我们来一起了解一下Oracle数据库分析函数的使用吧,希望能够对您有所帮助。

实例如下:

1、表结构和测试数据插入

建表:

  1. create table TAB_FXHS    
  2. (    
  3. id VARCHAR2(32),    
  4. zt VARCHAR2(2)    
  5. );   

-- Add comments to the table    

  1. comment on table TAB_FXHS    
  2. is '用于统计状态值全为正常的id值';   

-- Add comments to the columns    

  1. comment on column TAB_FXHS.id    
  2. is '主键ID';    
  3. comment on column TAB_FXHS.zt    
  4. is '状态';   

插入测试数据:

  1. prompt Importing table TAB_FXHS...    
  2. set feedback off    
  3. set define off    
  4. insert into TAB_FXHS (ID, ZT)values ('10125', '0');    
  5. insert into TAB_FXHS (ID, ZT)values ('10161', '0');    
  6. insert into TAB_FXHS (ID, ZT)values ('10141', '0');    
  7. insert into TAB_FXHS (ID, ZT)values ('10126', '1');    
  8. insert into TAB_FXHS (ID, ZT)values ('10102', '0');    
  9. insert into TAB_FXHS (ID, ZT)values ('10103', '0');    
  10. insert into TAB_FXHS (ID, ZT)values ('10121', '0');    
  11. insert into TAB_FXHS (ID, ZT)values ('10121', '1');    
  12. insert into TAB_FXHS (ID, ZT)values ('10121', '0');    
  13. insert into TAB_FXHS (ID, ZT)values ('10121', '3');    
  14. prompt Done.   

2、 功能需求说明

在表TAB_FXHS中,ID是关键字段,ZT是状态。

ID中可能会有重复的值,现在要求找出ZT全为1的所有ID值。

3、功能实现的SQL语句 

  1. WITH ZT_PARTITION_BY_ID AS    
  2. (SELECT ID, ZT, COUNT(ZT) OVER(PARTITION BY ID ORDER BY ID) ID_ZT    
  3. FROM TAB_FXHS    
  4. GROUP BY ID, ZT)    
  5. SELECT *    
  6. FROM ZT_PARTITION_BY_ID    
  7. WHERE ID_ZT = 1    
  8. AND ZT = 1;   

以上就是Oracle数据库中分析函数的应用实例之实现查找状态全为1的ID的全部过程,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

精彩图集

赞助商链接