如何计算结果行数plsql
How to count number of results rows plsql
我在 PL SQL 中创建了这个查询,我必须在其中检查一个操作需要多少时间。
set line 2222
set pages 0
set feedback off
col EVENT for a35
col SQL_ID for a13
col ET for 9999
col mymac for a15
col username for a12
SELECT MAX(a.last_call_et)
FROM gv\$session a, gv\$sqlarea c
where c.address= a.sql_address
and c.hash_value = a.sql_hash_value
and a.username='XXXX'
and a.last_call_et>600
order by a.last_call_et;
我想以某种方式修改此查询,以显示我从结果中获得了多少行。例如,如果我的查询结果有两行,我想显示 '2'
我认为您可以将 count
聚合函数与现有的 max
聚合函数一起使用,如下所示:
SELECT MAX(a.last_call_et),
count(1) as total_rows --<-- this
FROM gv\$session a, gv\$sqlarea c
where c.address= a.sql_address
and c.hash_value = a.sql_hash_value
and a.username='XXXX'
and a.last_call_et>600
-- order by a.last_call_et; this order by is of no use
干杯!!
因为它是 SQL*Plus,所以它的一些格式可以完成这项工作。例如:
SQL> break on report
SQL> compute count of ename on report
SQL>
SQL> select ename from emp where deptno = 10;
ENAME
----------
CLARK
KING
MILLER
----------
3
SQL>
我在 PL SQL 中创建了这个查询,我必须在其中检查一个操作需要多少时间。
set line 2222
set pages 0
set feedback off
col EVENT for a35
col SQL_ID for a13
col ET for 9999
col mymac for a15
col username for a12
SELECT MAX(a.last_call_et)
FROM gv\$session a, gv\$sqlarea c
where c.address= a.sql_address
and c.hash_value = a.sql_hash_value
and a.username='XXXX'
and a.last_call_et>600
order by a.last_call_et;
我想以某种方式修改此查询,以显示我从结果中获得了多少行。例如,如果我的查询结果有两行,我想显示 '2'
我认为您可以将 count
聚合函数与现有的 max
聚合函数一起使用,如下所示:
SELECT MAX(a.last_call_et),
count(1) as total_rows --<-- this
FROM gv\$session a, gv\$sqlarea c
where c.address= a.sql_address
and c.hash_value = a.sql_hash_value
and a.username='XXXX'
and a.last_call_et>600
-- order by a.last_call_et; this order by is of no use
干杯!!
因为它是 SQL*Plus,所以它的一些格式可以完成这项工作。例如:
SQL> break on report
SQL> compute count of ename on report
SQL>
SQL> select ename from emp where deptno = 10;
ENAME
----------
CLARK
KING
MILLER
----------
3
SQL>