sourcetip

오라클에서 id의 중복 행마다 하나의 레코드만 얻는 방법은?

fileupload 2023. 11. 4. 13:16
반응형

오라클에서 id의 중복 행마다 하나의 레코드만 얻는 방법은?

내가 이 테이블을 가지고 있다고 가정합니다.

group_id | image | image_id |
-----------------------------
23        blob       1
23        blob       2
23        blob       3
21        blob       4
21        blob       5
25        blob       6
25        blob       7

각 그룹 ID 중 1개만 결과를 얻는 방법은?이 경우 하나의 그룹 id에 대해 여러 이미지가 있을 수 있으며, 나는 단지 각 그룹 id의 결과 하나를 원합니다.

나는 구별을 시도했지만 나는 group_id만 얻을 것입니다. 이미지에 대한 max도 작동하지 않습니다.

Oracle에는 작동하는 표준 Aggregate 함수가 없습니다.BLOBs, 그래서GROUP BY해결책이 안 될 겁니다

다음 기준으로 시도해 보십시오.ROW_NUMBER()query 아래에

SELECT inn.group_id, inn.image, inn.image_id
FROM
(
    SELECT t.group_id, t.image, t.image_id, 
        ROW_NUMBER() OVER (PARTITION BY t.group_id ORDER BY t.image_id) num
    FROM theTable t
) inn
WHERE inn.num = 1;

위는 첫번째를 반환해야 합니다(기준).image_id) 그룹별 행을 지정합니다.

SQL Fiddle

SELECT  group_id, image, image_id
FROM    a_table
WHERE   (group_id, image_id) IN
        (
            SELECT  group_id, MIN(image_id)
            FROM    a_table
            GROUP   BY
                    group_id
        )
;
select * from 
  (select t1.*,
   ROW_NUMBER() OVER (PARTITION BY group_id ORDER BY group_id desc) as seqnum
   from tablename t1) 
where seqnum=1;

언급URL : https://stackoverflow.com/questions/19920243/how-to-get-only-one-record-for-each-duplicate-rows-of-the-id-in-oracle

반응형

'sourcetip' 카테고리의 다른 글

두 AVL 트리 연결/병합/접합  (0) 2023.11.04
PHP에서 동적 정적 메서드 호출?  (0) 2023.11.04
PowerShell로 이메일 보내는 방법  (0) 2023.11.04
CSS to set A4 paper size  (0) 2023.11.04
파워셸: Get-Item vs Get-ChildItem  (0) 2023.11.04