sql - oracle sql组合
问题描述
我有这个结果的表(例如,实际上它有更多记录):
31.3.2020 A 1
30.4.2020 A 2
31.3.2020 B 1
30.4.2020 C 3
是否可以通过 sql 添加空的缺失值?在这种情况下:
30.4.2020 B 0
31.3.2020 C 0
谢谢
解决方案
您可以使用anti join
和NOT EXISTS
如下:
SQL> with your_data (col1, col2, col3) as
2 (select to_date('31.3.2020','dd.mm.rrrr'), 'A', 1 from dual union all
3 select to_date('30.4.2020','dd.mm.rrrr'), 'A', 2 from dual union all
4 select to_date('31.3.2020','dd.mm.rrrr'), 'B', 1 from dual union all
5 select to_date('30.4.2020','dd.mm.rrrr'), 'C', 3 from dual)
6 -- your query starts from here
7 select distinct t1.col1, t2.col2, 0 as col3
8 from your_data t1 join your_data t2 on t1.col1 <> t2.col1
9 where not exists
10 (select 1 from your_data t where t2.col2 = t.col2 and t1.col1 = t.col1)
11 order by t1.col1, t2.col2;
COL1 C COL3
--------- - ----------
31-MAR-20 C 0
30-APR-20 B 0
SQL>
然后UNION
它与您的数据。
推荐阅读
- javascript - 'Slick' 轮播 JQuery 代码无法运行/加载
- r - geom_bar 的 geom_text 位置问题
- dart - dart2native 可执行文件可以在 AppStore 和 MicrosoftStore 上发布吗?
- ios - 有什么方法可以在 coreData 中存储多维数组?
- javascript - 从孩子访问 useState 钩子
- python - 如何在 Keras 的 LSTM 中修复以下错误?如果 RNN 是有状态的,请指定 `batch_input_shape`
- python - 模型为每个观察输出 0 个概率和 0 个类别
- reactjs - 通过渲染的 React 组件创建新行
- api - Google Fit REST API 上的数据源创建问题(氧饱和度)
- php - 是否可以在不写入文件的情况下创建包含二进制数据的文件?