SQL常用字段及脚本081010
- 格式:xls
- 大小:174.50 KB
- 文档页数:14
sql 多字段查询语句SQL 多字段查询语句:深入理解和实践在数据库管理系统中,查询是最常见和重要的操作之一。
而在实际应用中,我们往往需要针对多个字段进行查询,以满足不同的需求和条件。
本文将深入探讨SQL中的多字段查询语句,并提供详细的步骤和实践示例。
第一步:了解基本的查询语句在开始学习多字段查询之前,首先需要掌握基本的查询语句。
SQL提供了SELECT语句用于从数据库中检索数据。
下面是一些常见的SELECT语句示例:SELECT * FROM 表名;这种查询语句将返回指定表中的所有行和列,即检索整个表的数据。
SELECT 列1, 列2, ... FROM 表名;这种查询语句将只返回指定列的数据,其中列1, 列2为要查询的列的名称。
SELECT * FROM 表名WHERE 条件;这种查询语句将根据指定的条件返回符合条件的行和列,条件可以是等于、大于、小于等。
第二步:使用多字段查询一旦掌握了基本的查询语句,我们就可以开始学习如何使用多个字段进行查询了。
SQL提供了一些关键字和运算符,以便我们可以使用多字段对数据进行更精确的筛选。
1. AND运算符AND运算符用于将两个或多个条件组合在一起,并查询同时满足这些条件的数据。
下面是一个示例:SELECT * FROM 表名WHERE 条件1 AND 条件2;这个查询语句将返回同时满足条件1和条件2的数据。
2. OR运算符与AND运算符相反,OR运算符用于将两个或多个条件组合在一起,只要满足其中之一的条件就返回数据。
下面是一个示例:SELECT * FROM 表名WHERE 条件1 OR 条件2;这个查询语句将返回满足条件1或条件2的数据。
3. NOT运算符NOT运算符用于排除某个条件的数据。
下面是一个示例:SELECT * FROM 表名WHERE NOT 条件;这个查询语句将返回不满足条件的数据。
第三步:应用实践示例为了更好地理解和应用多字段查询语句,我们假设有一个名为"学生"的表,包含以下字段:学生ID、姓名、年龄、性别、班级。
sql 查询字段类型SQL查询字段类型是用来定义数据库表中每一列的类型,它决定了该列能存储什么样的数据。
在进行数据库设计时,为表中每一列设置合适的字段类型就显得非常重要,因为不同的类型可以提供不同的特性,也会影响存储和访问数据的速度。
SQL查询字段类型包括数值类型、字符串类型、日期/时间类型、BLOB/CLOB类型,其中数值类型又包括整数类型、浮点数类型、布尔类型等,字符串类型又包括CHAR、VARCHAR、TEXT等,日期/时间类型又包括DATE、TIME、TIMESTAMP等,BLOB/CLOB类型包括BINARY、VARBINARY、BLOB、CLOB等。
数值类型指的是数字,用于存储整数和小数,比如常用的int、decimal等,可以进行数学计算,比如加减乘除等运算。
布尔类型只有0和1两种取值,用于存储布尔值,比如True or False。
字符串类型用于存储文本或者字符,如CHAR、VARCHAR等,CHAR类型在定义列时必须指定字符长度,而VARCHAR类型则可以任意指定字符长度,都是可变长度的;TEXT类型长度没有限制,也是可变长度,但是查询速度较慢,一般用于存储大量文本信息,比如文章等。
日期/时间类型用于存储日期和时间信息,比如DATE 类型只存储日期,TIME类型只存储时间,TIMESTAMP类型则可以同时存储日期和时间。
BLOB/CLOB类型用于存储二进制数据或大量文本数据,比如BINARY类型可以存储二进制数据,VARBINARY类型可变长度的二进制数据,BLOB类型可以存储大量文本数据,而CLOB类型则可以存储更大量的文本数据。
总之,选择合适的SQL查询字段类型对于优化数据库表的性能,进行数据存储和访问,都是非常重要的一步。
不同的类型有不同的特性,可以根据实际情况来选择最合适的类型,以提供最好的性能。
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键: Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
常用经典 SQL语句大全完好版 -- 详解 +实例以下语句部分是Mssql 语句,不可以够在access 中使用。
SQL分类:DDL—数据定义语言 (CREATE,ALTER,DROP,DECLARE)DML—数据操控语言 (SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言 (GRANT,REVOKE,COMMIT,ROLLBACK)第一 , 简要介绍基础语句:1、说明:创立数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份 sql server---创立备份数据的 deviceUSE masterEXECsp_addumpdevice ’disk ’,’testBack’,’c:’---开始备份BACKUP DATABASE pubs TO testBack4、说明:创立新表create table tabname(col1 type1 [not null][primary key],col2 type2 [not null],..)依据已有的表创立新表:A:create table tab_new like tab_old (使用旧表建新表) B:create table tab_new as select col1,col2⋯from tab_old definition only5、明:除新表:drop table tabname6、明:增添一个列: Alter table tabname add column col type注:列增添后将不可以除。
DB2中列加上后数据型也不可以改,独一能改的是增添varchar 型的度。
7、明:增添主: Alter table tabname add primary key(col)明:除主: Alter table tabname drop primary key(col)8、明:建索引: create [unique] index idxname on tabname(col ⋯.)除索引: drop index idxname注:索引是不行改正的,想改正必除从头建。
数据库添加字段的sql语句
要向数据库表中添加字段,可以使用`ALTER TABLE`语句。
以下是向表中添加字段的SQL语句示例:
```sql
ALTER TABLE 表名 ADD 列名数据类型;
```
其中,`表名`是要添加字段的表的名称,`列名`是要添加的字段的名称,`数据类型`是该字段的数据类型。
例如,要向名为`students`的表中添加一个名为`email`的字段,数据类型为`varchar(100)`,可以使用以下SQL语句:
```sql
ALTER TABLE students ADD email varchar(100);
```
请注意,这只是添加字段的简单示例。
在实际使用中,可能需要考虑更多的因素,例如字段的约束、默认值等。
具体的语法和操作取决于使用的数据库管理系统。
SQL常用语句第四章:语言基础数值型◆定长(准确表达)(一)整数:(1) bigint: 8字节,(2)smallint(小整型):2字节(3) int:4字节 (4)tinyint:1字节(5)Bit:1位,存储1或0(二)小数numeric(p,q)或decimal(p,q),其中:p为数字位长度,q:小数位长度。
(三)浮点(近似)数:(1) float:8字节 (2)real:4字节字符串型(一)普通编码字符串类型(1)char(n): 普通编码定长类型,n<=8000(2)varchar(n):普通编码不定长类型(按实际长度存储),长度最大不超过n , n<=8000(3)text:存储大于8000字节的文本(二)统一字符编码字符串类型(1)nchar(n): 统一字符编码定长类型,n<=4000(2)nvarchar(n):统一字符编码不定长类型,长度最大不超过n , n<=4000(3)ntext:存储大于8000字节的文本(三)二进制字符串类型(1)binary(n):固定长度,n < 8000,占用n +4个字节的存储空间(2)varbinary(n) :可变长度,n < 8000 ,占用实际长度 + 4个字节的存储空间注:n为二进制数据的字节数(3)image :大容量、可变长二进制字符数据,可用于存储文件日期时间型(1)datetime:8字节,年月日时分秒毫秒(例:‘2001/08/03 10:30:00.000’)(2)smalldatetime(小整型时间型):4字节,年月日时分(例:‘2001/08/03 10:30:00’)货币类型◆表示正的或负的货币值(1)money:精确到货币单位的千分之十。
存储大小为 8 个字节。
(2)smallmoney:精确到货币单位的千分之十。
存储大小为 4 个字节。
◆限制到小数点后 4 位。
◆货币类型的数值可以带有适当的货币符号。
order by的数值型灵活使用select * from table_a where id=p_id order by decode(函数,'asc',1,'desc',-1)*jsny;控制视图的访问时间create view ...asselect ... from where exists(select x from dual where sysdate>=8:00am and sysdate<=5:00pm)流控制语句(decode)DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
例如:工资在8000元以下的加20%;工资在8000元或以上的加15%select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary*1.15) from employee用decode实现排序select * from tabnameorder by decode(mode,'FIFO',1,-1)*to_char(rq,'yyyymmddhh24miss');select * from tabnameorder by decode(mode,'FIFO',rq-sysdate, sysdate-rq)找出某个时期内工作日数select count(*)from ( select rownum-1 rnum from all_objectswhere rownum <= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002-02-01','yyyy-mm-dd')+1 )where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' ) notin ( '1', '7' )查询重复记录select rowid,bdsszd from BADWDJ a where a.rowid != (select max(rowid) from BADWDJ b where a.bdsszd =b.bdsszd)由它引申的就有很多有用的语句,如排序的难题select id,bdsszd from BADWDJ a where a.id = (select max(id) from BADWDJ b where a.bdsszd =b.bdsszd) order by id树型结构表的查询select ID,PARENT_ID from parent_childconnect by prior id = parent_idstart with id = 1;总结:1.decode这个函数一定需要会,我觉得sql的灵活很多地方都是通过这个function来体现的,相当于if,很好用。
sql查询字段类型的函数本文将介绍SQL查询字段类型的函数,包括常用的数据类型和相应的函数。
1. 字符串类型字符串类型是SQL中最常用的数据类型之一,常用的函数包括:1.1 LENGTH函数LENGTH函数用于返回字符串的长度,语法如下:SELECT LENGTH(column_name) FROM table_name;其中,column_name是要查询的列名,table_name是要查询的表名。
1.2 CONCAT函数CONCAT函数用于将多个字符串连接起来,语法如下:SELECT CONCAT(column_name1, column_name2) FROM table_name;其中,column_name1和column_name2是要连接的列名,table_name是要查询的表名。
1.3 SUBSTRING函数SUBSTRING函数用于截取字符串的一部分,语法如下:SELECT SUBSTRING(column_name, start_position, length) FROM table_name;其中,column_name是要截取的列名,start_position是起始位置,length是要截取的长度,table_name是要查询的表名。
2. 数值类型数值类型是SQL中常用的数据类型之一,常用的函数包括:2.1 SUM函数SUM函数用于计算某一列的总和,语法如下:SELECT SUM(column_name) FROM table_name;其中,column_name是要计算总和的列名,table_name是要查询的表名。
2.2 AVG函数AVG函数用于计算某一列的平均值,语法如下:SELECT AVG(column_name) FROM table_name;其中,column_name是要计算平均值的列名,table_name是要查询的表名。
2.3 MAX函数MAX函数用于返回某一列的最大值,语法如下:SELECT MAX(column_name) FROM table_name;其中,column_name是要查询的列名,table_name是要查询的表名。
SQL脚本的使⽤sql脚本是包含⼀到多个sql命令的sql语句,我们可以将这些sql脚本放在⼀个⽂本⽂件中(我们称之为“sql脚本⽂件”),然后通过相关的命令执⾏这个sql脚本⽂件。
基本步骤如下:1、创建包含sql命令的sql脚本⽂件⽂件中包含⼀些列的sql语句,每条语句最后以;结尾,⽂件内容⽰例如下:--创建表,使⽤“--”进⾏注释create table 表名称(Guid Varchar(38) not null primary key,Title Varchar(255),) TYPE=InnoDB;--在表A中增加字段Statusalter table A add Status TinyInt default '0';--在表A上创建索引create index XX_TaskId_1 on A(Id_);--在A表中添加⼀条记录Insert into A (Id,ParentId, Name) values(1,0,'名称');--添加、修改、删除数据后,有可能需要提交事务Commit;2、执⾏sql脚本⽂件⽅法⼀使⽤cmd命令执⾏(windows下,unix或linux在的其控制台下)【Mysql的bin⽬录】\mysql –u⽤户名 –p密码 –D数据库<【sql脚本⽂件路径全名】,⽰例:D:\mysql\bin\mysql –uroot –p123456 -Dtest<d:\test\ss.sql注意:A、如果在sql脚本⽂件中使⽤了use 数据库,则-D数据库选项可以忽略B、如果【Mysql的bin⽬录】中包含空格,则需要使⽤“”包含,如:“C:\Program Files\mysql\bin\mysql” –u⽤户名 –p密码 –D数据库<【sql脚本⽂件路径全名】⽅法⼆进⼊mysql的控制台后,使⽤source命令执⾏Mysql>source 【sql脚本⽂件的路径全名】或 Mysql>\. 【sql脚本⽂件的路径全名】,⽰例:source d:\test\ss.sql或者\\. d:\test\ss.sql。
sql 查询表字段说明SQL 查询表字段说明在进行数据库操作时,经常需要了解表的结构,包括字段名、数据类型、约束等信息。
在SQL中,使用查询语句可以方便地获取表字段的说明。
下面是关于SQL查询表字段说明的一些常用方法:1. DESC命令DESC命令是MySQL数据库中用于查询表结构的命令。
通过DESC 命令可以获取表中各个字段的名称、类型、长度、是否允许为空以及默认值等信息。
下面是使用DESC命令查询表字段说明的基本语法:DESC 表名;例如,下面是查询表”employee”的字段说明:DESC employee;结果会显示出表”employee”中每个字段的名称、数据类型、是否允许为空、键类型等信息。
2. SHOW COLUMNS命令SHOW COLUMNS命令也是用于查询表结构的命令,它可以获取表中各个字段的详细信息,包括字段名、数据类型、是否允许为空、键类型、默认值、额外信息等。
下面是使用SHOW COLUMNS命令查询表字段说明的基本语法:SHOW COLUMNS FROM 表名;例如,下面是查询表”employee”的字段说明:SHOW COLUMNS FROM employee;结果会显示出表”employee”中每个字段的详细信息,包括字段名、数据类型、是否允许为空、键类型、默认值、额外信息等。
3. INFORMATION_SCHEMA数据库在MySQL中,INFORMATION_SCHEMA是一个包含了数据库元数据的数据库,我们可以通过查询INFORMATION_SCHEMA来获取表的字段说明信息。
下面是使用INFORMATION_SCHEMA查询表字段说明的基本语法:SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_ DEFAULTFROM INFORMATION_WHERE TABLE_NAME = '表名';例如,下面是查询表”employee”的字段说明:SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_ DEFAULTFROM INFORMATION_WHERE TABLE_NAME = 'employee';结果会显示出表”employee”中每个字段的名称、数据类型、是否允许为空以及默认值等信息。
相关指标相关字段相关解释相关公式SQL脚本附件寻呼PAGING_MSG_SENT寻呼信息,LAC级平均UM寻呼负荷:decode(sum(AVE_PAGING_LOAD_AIR_DEN),0,0,sum(PS_PAGING_MSG_SENT 数据寻呼信息CS_PAGING_MSG_SENT语音寻呼信息DELETE_PAGING_COMMAND寻呼删除命令AVE_PCH_LOAD平均PCH负荷PEAK_PCH_LOAD峰值PCH负荷MIN_PAGING_BUF最小寻呼缓存MAX_PAGING_BUFFER_CAPA 最大寻呼缓存容量
RACH接入CH_REQ_MSG_REC 通过RACH发起的请求数随机接入失败率:100*(sum(a.ghost_ccch_res - aIMM_ASSGN_SENT 立即指配数IMM_ASSGN_REJ 立即指配拒绝数DEL_IND_MSG_REC 由于AG buffer溢出而删除指示数SUCC_SEIZ_ORIG 成功主叫SD占用数SUCC_SEIZ_TERM 成功被叫SD占用数SDCCH_CALL_RE_EST SD呼叫重建数SDCCH_EMERG_CALL SD紧急呼叫数SDCCH_LOC_UPD SD位置更新数SUCC_SDCCH_SMS_EST 成功SD短信建立数UNSUCC_SDCCH_SMS_EST 不成功SD短信建立数sdcch_assign SD指配数T3101_EXPIRED T3101超时数sdcch_new_call_assign 呼叫所占用SD的数
SD的占用SDCCH_SEIZ_ATTSD请求数SD拥塞率:DECODE(sum(SDCCH_SEIZ_ATT),0,0,sum(SDCCH_BUSY_ATT)SDCCH_ASSIGNSD指配数SDCCH_HO_SEIZSD切换数SDCCH_MOC_SEIZ_ATTSD主叫请求数SDCCH_MTC_SEIZ_ATTSD被叫请求数SDCCH_UNSUCC_IMM_ASSIGN_ATT不成功的SD分配数在立即指配请求过程中SDCCH_BUSY_ATTSD请求遇忙次数SDCCH_DYNAMIC_RECONF_ATT动态SD分配次数
SD掉话SDCCH_RADIO_FAILSD无线掉话SD掉话率:decode(SUM(SDCCH_ASSIGN+SDCCH_HO_SEIZ),0,0,100*SUMSDCCH_RF_OLD_HOSD切换掉话 SDCCH_USER_ACTSD用户操作掉话SDCCH_BCSU_RESETSD BCSU重启掉话SDCCH_NETW_ACTSD 网络操作掉话SDCCH_ABIS_FAIL_CALLSD ABIS失败掉话SDCCH_ABIS_FAIL_OLDSD abis切换掉话SDCCH_BTS_FAILSD bts原因掉话SDCCH_LAPD_FAILSD LAPD掉话SDCCH_A_IF_FAIL_CALLSD A口失败掉话SDCCH_A_IF_FAIL_OLDSD A口切换掉话
TCH占用及话务tch_call_reqTCH请求数TCH话务量:sum(decode(p.res_av_denom14,0,0,p.ave_busy_tch/p.tch_norm_seizTCH占用数TCH拥塞率:100*decode(sum(a.tch_call_req),0,0,(sum(a.tch_calTCH_HO_SEIZ切换TCH占用数TCH_RE_EST_ASSIGN呼叫重建数ave_tch_busy_full全速率话务ave_tch_busy_half半速率话务
TCH的掉话CLEAR_REQUEST_BY_BSC_ON_TCH2071掉话数800掉话率:decode(SUM(A.TCH_NORM_SEIZ+C.MSC_I_SDCCH_TCH+ C.BTCH_RF_FAILTCH无线掉话TCH_RF_OLD_HOTCH无线切换掉话TCH_ABIS_FAIL_CALLTCH ABIS失败掉话TCH_ABIS_FAIL_OLDTCH切换掉话TCH_A_IF_FAIL_CALLTCH A口失败掉话TCH_A_IF_FAIL_OLDTCH A口切换掉话TCH_TR_FAILTCH TR失败掉话TCH_TR_FAIL_OLDTCH TR切换掉话TCH_LAPD_FAILTCH LAPD失败掉话TCH_BTS_FAILTCH BTS失败掉话TCH_USER_ACTTCH 用户操作掉话TCH_BCSU_RESETTCH BCSU重启掉话TCH_NETW_ACTTCH 网络操作掉话TCH_ACT_FAIL_CALLTCH操作掉话
切换msc_o_tch_tch_atMSC控制的TCH出切换切换失败率:decode(sum(msc_o_tch_tch_at+msc_omsc_o_sdcch_tch_atMSC控制的DRmsc_o_sdcch_atMSC控制的SD出切换bsc_o_tch_tch_atBSC控制的TCH出切换bsc_o_sdcch_tch_atBSC控制的DRbsc_o_sdcch_atBSC控制的SD出切换cell_tch_tch_at小区内切换cell_sdcch_tch_at小区DR数cell_sdcch_at小区SD切换
质量&电平FREQ_DL_QUAL0下行质量等级0质量0~2级比例:decode(sum(a.FREQ_UL_QUAL0+a.FREQ_UL_QUAL1+a.FREQ_DL_QUAL1下行质量等级1FREQ_DL_QUAL2下行质量等级2FREQ_DL_QUAL3下行质量等级3FREQ_DL_QUAL4下行质量等级4FREQ_DL_QUAL5下行质量等级5FREQ_DL_QUAL6下行质量等级6FREQ_DL_QUAL7下行质量等级7
TA测量class_upper_range等级范围TA比例:decode(b.all_occur,0,0,100*sum(a.freq_reports)/b.allfreq_reports报告次数
信道配置ave_avail_TCH_sumTCH信道数TCH可用率:decode(SUM(AVE_AVAIL_TCH_SUM/AVE_AVAIL_TCH_DEN+ Aave_permanent_GPRS_ch_sumCDED信道数AVE_TCH_AVAIL_HALF半速率信道数
其他AD_AIR_DEN),0,0,sum(AVE_PAGING_LOAD_AIR_SUM)/sum(AVE_PAGING_LOAD_AIR_DEN)) from p_nbsc_res_accessst_ccch_res - a.rej_seiz_att_due_dist + a.bcsu_overload_lower_limit + a.bcsu_overload_upper_limit + a.bcsu_overload_deleted_rach)/s
Z_ATT),0,0,sum(SDCCH_BUSY_ATT)/sum(SDCCH_SEIZ_ATT)*100) from P_NBSC_TRAFFICIGN+SDCCH_HO_SEIZ),0,0,100*SUM(SDCCH_RADIO_FAIL+SDCCH_RF_OLD_HO+SDCCH_USER_ACT+SDCCH_BCSU_RESET +SDCCH_NETW_ACT+SDCCH_ABIS_FAIL_CA
_denom14,0,0,p.ave_busy_tch/p.res_av_denom14))h_call_req),0,0,(sum(a.tch_call_req-a.tch_norm_seiz)-sum(b.msc_o_sdcch_tch+b.bsc_o_sdcch_tch+b.cell_sdcch_tch))/sum(a.tch_call_req)
RM_SEIZ+C.MSC_I_SDCCH_TCH+ C.BSC_I_SDCCH_TCH+ C.CELL_SDCCH_TCH- A.TCH_SUCC_SEIZ_FOR_DIR_ACC+A.TCH_SEIZ_DUE_SDCCH_CON),0,0,100*SUM(Amsc_o_sdcch_tch_at+msc_o_sdcch_at+bsc_o_tch_tch_at+bsc_o_sdcch_tch_at+bsc_o_sdcch_at+cell_tch_tch_at+ cell_sdccEQ_UL_QUAL0+a.FREQ_UL_QUAL1+a.FREQ_UL_QUAL2+a.FREQ_UL_QUAL3+a.FREQ_UL_QUAL4+a.FREQ_UL_QUAL5+a.FREQ_UL_QUAL6+a.FREQ_UL_QUAL7),0,0,10,100*sum(a.freq_reports)/b.all_occur) from p_nbsc_timing_advanceL_TCH_SUM/AVE_AVAIL_TCH_DEN+ AVE_GPRS_CHANNELS_SUM/AVE_GPRS_CHANNELS_DEN+AVE_NON_AVAIL_TCH),0,0,100*SUM(AVE_AVAIL_TCH_SUM/AVE_AVAILdeleted_rach)/sum(a.ch_req_msg_rec+b.packet_ch_req)) from p_nbsc_res_access
TW_ACT+SDCCH_ABIS_FAIL_CALL+SDCCH_ABIS_FAIL_OLD+SDCCH_BTS_FAIL+SDCCH_LAPD_FAIL+SDCCH_A_IF_FAIL_CALL +SDCCH_A_IF_FAIL_OLD)/SUM(SDCCtch))/sum(a.tch_call_req)) from p_nbsc_res_avail p,p_nbsc_traffic a,p_nbsc_ho b_SDCCH_CON),0,0,100*SUM(A.TCH_RADIO_FAIL+ A.TCH_RF_OLD_HO+A.TCH_ABIS_FAIL_CALL - B.SPARE002072+ A.TCH_ABIS_FAIL_OLD+ A.TCH_A_IF_FAIL