sql - 根据另一个不同的列查找唯一值的总和
问题描述
我是甲骨文的新手。我在 Oracle Database 12c 版本上工作。一个文件有两个数据文件副本#。我只需要计算第二组文件#的备份数据文件副本的总大小,不包括第一个副本。
查询的输出显示一个文件的两个或多个副本#
如果我总结找到数据文件的总大小,它会显示两个数据文件副本的总和。
SQL> select sum((datafile_blocks)*8/1024) from v$BACKUP_DATAFILE;
SUM((DATAFILE_BLOCKS)*8/1024)
-----------------------------
10738.375
我只需要第一个副本或第二个副本的总大小
SQL> select file#,count(*),sum((datafile_blocks)*8/1024) from v$BACKUP_DATAFILE group by file#;
FILE# COUNT(*) SUM((DATAFILE_BLOCKS)*8/1024)
---------- ---------- -----------------------------
1 2 1900
6 2 3588.625
2 2 32.25
5 2 2500
4 2 670
8 2 87.25
3 2 1780
7 2 32.25
9 2 108.125
10 2 20
0 4 19.875
11 rows selected.
如果我用有子句分组,它显示 0 行
SQL> select sum((datafile_blocks)*8/1024) from v$BACKUP_DATAFILE group by file# having count(file#)=1;
no rows selected
解决方案
如果我做对了,您只需要每个文件的最后一条语句。你?
在这种情况下,我建议这样:
with
t as (
select file#,
datafile_blocks * 8 / 1024 sum_blk,
checkpoint_time,
row_number() over (
partition by file#
order by checkpoint_time desc) desc_row_no
from v$backup_datafile
)
select *
from t
where desc_row_no = 1
推荐阅读
- javascript - 无法使用地图功能显示引导表
- javascript - 如何在 nuxt.js 中申请 TailwindCss 活动样式?
- visual-studio - Visual Studio 2019 架构比较崩溃
- c++ - 复制对象(无堆)
- sql - 我可以在内部查询中定义别名并传递给外部查询吗?
- microsoft-edge - 在开发人员工具中“重播 XHR”时,表单数据丢失
- javascript - 我在让我的子字符串显示某个结果时磕磕绊绊
- python - 用于多个单元格的自定义 IPython 魔术命令
- c++ - C++打印时差?
- r - 在管道工 api 中更改 R 数据帧的 json 序列化格式