Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从oracle视图中删除重复行_Sql_Oracle_Plsql - Fatal编程技术网

Sql 从oracle视图中删除重复行

Sql 从oracle视图中删除重复行,sql,oracle,plsql,Sql,Oracle,Plsql,我有一个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_

我有一个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

提前感谢

在返回结果后,最简单的方法是在选择中使用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

根据返回的结果,最简单的方法是在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

也许你应该使用不同的操作符

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 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 ;

我以前尝试过Distinct,但它给了我一个空视图,但当我在SQL developer中关闭并重新打开视图时,它显示的数据没有重复的行,谢谢!我以前尝试过Distinct,但它给了我一个空视图,但当我在SQL developer中关闭并重新打开视图时,它显示的数据没有重复的行,谢谢
选择DISTINCT
绝对可以解决您的问题。就我个人而言,如果您不希望出现重复项,我想知道为什么会出现重复项。
SELECT DISTINCT
肯定能解决您的问题。就我个人而言,我想知道为什么会出现重复的,如果你没有预料到的话。