2013-06-26 2 views
0

문제점 : 행 번호를 Vertica의 열 값으로 설정하는 중입니다. 예를 들어vertica : 열 값에 행 번호를 설정하십시오.

는 :

Table T has two columns: Id, name 

나는 이름의 값의 행 번호를 추가하는 스크립트를 사용하고 싶습니다. mySQl에서 업데이트 할 다음 스크립트를 실행합니다.

set @i=0; 
update T set name = (CONCAT(name, (@i:[email protected]+1))); 

그러나 Vertica는 변수를 지원하지 않습니다.

대상에 도달 할 수있는 방법을 제공해 주시겠습니까? Vertica의 창 기능을 지원하므로

+0

Vertica가 rownum 또는 rowid를 지원하지 않는다고 생각합니다. – Amit

답변

1

, 이런 일이 데이터를 검색 할 수 있습니다 :하지만

select name, 
     row_number() over (order by name) as rn 
from T; 

이가 UPDATE 문으로 이동 될 수 있는지 확실하지 오전 - 나는 Vertica의가없는 사용 가능한 설치 :

update T 
    set name = name || tx.rn 
from (
    select id, 
      row_number() over (order by name) as rn 
    from T 
) as tx 
where tx.id = t.id; 

그이 허용되지 않는 "자체 조인"로 자격이 있는지 모르겠어요. 그러나 어쩌면 그것은 당신을 올바른 방향으로 인도합니다.

+0

괜찮을 것입니다. 고맙습니다. – Edmund

관련 문제