SQL:创建拖车计数

SQL:创建拖车计数,sql,oracle,Sql,Oracle,我创建了一个查询,它将输出一个带有标题和详细信息的平面文件。 现在,我想添加一个拖车记录,它将包含详细记录的总计数 我已经使用row_number正确地计算了记录总数,但它显示了每条记录的总数 如何获取最后一行,使其反映拖车行中的总计数 这是我已经为标题和细节创建的代码 SQL> SELECT filerec FROM ( 2 SELECT 'FILENAME' AS filerec, 1 col FROM dual 3 UNION ALL 4 SELE

我创建了一个查询,它将输出一个带有标题和详细信息的平面文件。 现在,我想添加一个拖车记录,它将包含详细记录的总计数

我已经使用row_number正确地计算了记录总数,但它显示了每条记录的总数

如何获取最后一行,使其反映拖车行中的总计数

这是我已经为标题和细节创建的代码

SQL> SELECT filerec FROM ( 2 SELECT 'FILENAME' AS filerec, 1 col FROM dual 3 UNION ALL 4 SELECT 'FILEDATE: ' || to_char(SYSDATE,'mm/dd/yyyy') as filerec, 2 col FROM dual 5 UNION ALL 6 SELECT empno || ename AS filerec, NULL col FROM emp 7 ORDER BY 2,1 8 ); SQL>从中选择filerec( 2选择“文件名”作为filerec,从双通道中选择1列 3全体工会 4选择'FILEDATE:'| | to_char(SYSDATE,'mm/dd/yyyy')作为filerec,从双字符中选择2列 5全体工会 6选择empno | | ename作为filerec,从emp中选择NULL col 7按2,1排序 8 ); 这是我想要得到的输出。(添加了最后一个记录“拖车:0004”)

文件名 文件日期:2015年2月27日 7369史密斯 7499艾伦 7521病房 7566琼斯 预告片:0004
有几种方法可以做到这一点。我更喜欢分组。看看如何使用它。让我们有一个记录集:

SQL> select
  2    'Row ' || rownum
  3  from
  4    dual
  5  connect by
  6    level <= 5;

'ROW'||ROWNUM
--------------------------------------------
Row 1
Row 2
Row 3
Row 4
Row 5
SQL>select
2“行”| |行数
3来自
4双
5通过连接
6级选择
2例
3当分组_id(rownum)=0时,则为“Row”| | rownum
4其他“总计:”| |计数(*)| |“行”
5端
6来自
7双
8通过连接

9级您是否总是从SQL*Plus运行此命令?使用COUNT(*)和GROUP BY将所有其他选择合并。
SQL> select
  2    'Row ' || rownum
  3  from
  4    dual
  5  connect by
  6    level <= 5;

'ROW'||ROWNUM
--------------------------------------------
Row 1
Row 2
Row 3
Row 4
Row 5
SQL> select
  2    case
  3      when grouping_id(rownum) = 0 then 'Row ' || rownum
  4      else 'Total: ' || count(*) || ' row(s)'
  5    end
  6  from
  7    dual
  8  connect by
  9    level <= 5
 10  group by rollup (rownum);

CASEWHENGROUPING_ID(ROWNUM)=0T
------------------------------------------------------
Row 1
Row 2
Row 3
Row 4
Row 5
Total: 5 row(s)

6 rows selected