如何计算结果行数plsql
Posted
技术标签:
【中文标题】如何计算结果行数plsql【英文标题】:How to count number of results rows plsql 【发布时间】:2019-11-25 13:54:38 【问题描述】:我在 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'
【问题讨论】:
作为一个侧面观察,您展示的是一个简单的 SQL 语句,以及一些 sqlplus 命令。看不到一针 PL/SQL。 '$' 之前的反斜杠转义字符表明这实际上是 shell 脚本中的 'here' 文档的一部分。 【参考方案1】:我认为您可以将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
干杯!!
【讨论】:
【参考方案2】:因为它是 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>
【讨论】:
以上是关于如何计算结果行数plsql的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 中哪一个更快? COUNT(id) 还是计算结果行? [关闭]