Удалить повторяющийся ряд из оракула представления - PullRequest
0 голосов
/ 09 мая 2018

У меня есть представление оракула с некоторыми повторяющимися данными. Я пытаюсь удалить эти повторяющиеся строки из моего представления:

Это мой код просмотра:

 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

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Может быть, вы должны использовать 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 ;
0 голосов
/ 09 мая 2018

После получения результатов самым простым способом было бы использовать DISTINCT в вашем SELECT:

 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...