sql - 从视图 oracle 中删除重复的行
问题描述
我有一个包含一些重复数据的 oracle 视图,我试图从我的视图中删除那些重复的行:
这是我的视图代码:
CREATE OR REPLACE FORCE VIEW "GLSID"."VW_GLSID_DOCUMENTS" ("ID", "PARENT_ID", "DOCUMENT_TYPE_ID", "AMOUNT") AS
SELECT container.id,
container.container_id AS parent_id,
document.document_type_id,
container.number_of_documents AS amount
FROM container
JOIN document ON document.container_id = container.id ;
这个视图给了我这个结果:
ID | PARENT_ID | DOCUMENT_TYPE_ID | Amount
21 23 3 2
21 23 3 2
21 23 3 1
15 26 3 4
有人可以帮助我如何从这个视图中删除重复的行来得到这个:
ID | PARENT_ID | DOCUMENT_TYPE_ID | Amount
21 23 3 2
21 23 3 1
15 26 3 4
提前致谢
解决方案
根据返回的结果,最简单的方法是在 SELECT 中使用 DISTINCT:
CREATE OR REPLACE FORCE VIEW "GLSID"."VW_GLSID_DOCUMENTS" ("ID", "PARENT_ID", "DOCUMENT_TYPE_ID", "AMOUNT") AS
SELECT DISTINCT container.id,
container.container_id AS parent_id,
document.document_type_id,
container.number_of_documents AS amount
FROM container
JOIN document ON document.container_id = container.id ;
如果您在文档计数中发现错误,您可以尝试以下方法:
CREATE OR REPLACE FORCE VIEW "GLSID"."VW_GLSID_DOCUMENTS" ("ID", "PARENT_ID", "DOCUMENT_TYPE_ID", "AMOUNT") AS
SELECT container.id,
container.container_id AS parent_id,
document.document_type_id,
SUM(container.number_of_documents) AS amount
FROM container
JOIN document ON document.container_id = container.id
GROUP BY container.id,
container.container_id,
document.document_type_id
推荐阅读
- multithreading - 使用pytorch模型推断离线数据,但耗时太长
- jquery - 使用 Laravel/ajax 获取 http://localhost:8000/= 404(未找到)
- vim - 如何防止 rust.vim 插件自动插入右尖括号?
- php - 使用 salt 和 pem 文件 curl 响应错误的 Openssl 加密
- javascript - Axios 实例回调函数在移动设备上不起作用
- html - 如果表中存在值,则在 freemarker/html 中打印表
- c++ - 如何在模板函数中使用不同的结构作为模板参数?
- amazon-s3 - S3 DeleteObject 策略未添加且 PHP deleteObject SDK 不起作用
- python - 具有十进制数据类型的 Pandas `read_sql_query`
- javascript - javascript如何对单个对象数组进行分组和组合