기본 콘텐츠로 건너뛰기
연결

이 페이지에서

연결

연결은 두 테이블을 하나로 결합하는 연산입니다.

두 테이블은 각 개별 열 이름에 대해 하나의 열을 사용하여 하나를 다른 하나의 위에 누적하여 서로 추가됩니다. 데이터는 변경되지 않으며 결과 테이블에는 원래의 두 테이블을 합한 것과 동일한 수의 레코드가 포함됩니다. 여러 개의 연결 연산을 연속으로 수행할 수 있으며, 이런 경우 결과 테이블은 셋 이상의 테이블에서 컨케트네이트됩니다.

자동 연결

로드한 두 개 이상의 테이블에서 필드 이름과 필드의 수가 완전히 동일한 경우 Qlik Sense는 자동으로 여러 문의 내용을 한 테이블로 연결합니다.

자동 연결을 수행하기 위해서는 필드의 수와 이름이 완전히 동일해야 합니다. 두 LOAD 문의 순서는 상관 없지만 테이블에는 첫 번째로 로드할 테이블의 이름이 지정됩니다.

다음과 같이 하십시오.

  1. Scripting Tutorial 앱에서 데이터 로드 편집기를 엽니다.
  2. Dates 탭을 클릭합니다.
  3. 데이터 로드를 클릭합니다.
  4. 지금까지 작성한 로드 스크립트를 기반으로 Qlik SenseDates.xlsx 데이터 파일에서 628줄을 Table2로 로드합니다.

    데이터 로드 진행률 창
    Data load progress window

  5. Dates 섹션 스크립트의 새 줄에서 Table2LOAD 문을 복사하여 붙여넣습니다. 이렇게 하면 데이터가 두 번 로드됩니다. 두 번째 테이블 이름을 Table2a로 지정합니다.
  6. 기존 스크립트를 삭제하고 다음을 복사하여 붙여넣을 수도 있습니다.

    Table2: LOAD "Date", Month (Date) as "Month", Quarter, "Week", "Year" FROM [lib://DataFiles/Dates.xlsx] (ooxml, embedded labels, table is Dates); Table2a: LOAD "Date", Month (Date) as "Month", Quarter, "Week", "Year" FROM [lib://DataFiles/Dates.xlsx] (ooxml, embedded labels, table is Dates);

    스크립트는 다음과 같이 표시되어야 합니다.

    Dates 탭의 로드 스크립트
    Load script in Dates tab.

  7. 데이터 로드를 클릭합니다.
  8. Qlik SenseTable2를 로드한 다음 Table2a를 로드하지 않습니다. 대신 Table2a에 Table2와 동일한 필드 이름과 필드 수가 있다고 인식합니다. Table2a의 데이터를 Table2에 추가한 다음 테이블 Table2a를 삭제합니다. 그 결과 이제 Table2가 1,256줄입니다.

    데이터 로드 진행률 창에서 연결
     Concatenation in data load progress window.

  9. 데이터 모델 뷰어를 엽니다.
  10. 미리 보기 표시를 클릭합니다.
  11. Table2만 생성됩니다. Table2을 선택합니다. 테이블의 행은 256개입니다.

    Table2를 보여 주는 데이터 모델 뷰어
    Data model viewer showing Table2.

강제 연결

두 개 이상의 테이블이 완전하게 동일한 필드 집합을 가지지 않는 경우에도 Qlik Sense에서 두 테이블을 강제로 연결할 수 있습니다. 이를 위해서는 스크립트에 Concatenate 접두사를 사용하여 테이블을 다른 명명된 테이블이나 최근에 생성한 테이블과 컨케트네이트하면 됩니다.

다음과 같이 하십시오.

  1. Table2aLOAD 문을 편집하여 Concatenate를 추가하고 Week를 주석 처리합니다.
  2. 이제 스크립트는 다음과 같습니다.

    Table2a: Concatenate LOAD "Date", Month (Date) as "Month", Quarter, // "Week", "Year" FROM [lib://DataFiles/Dates.xlsx] (ooxml, embedded labels, table is Dates);

    Week를 주석 처리하여 테이블이 동일하지 않도록 했습니다.

  3. 데이터 로드를 클릭합니다.
  4. 데이터 모델 뷰어를 엽니다.
  5. 이제 Table2a가 생성되지 않았음을 알 수 있습니다.

  6. 데이터 모델 뷰어에서 Table2를 클릭한 다음 미리 보기를 클릭합니다.
  7. 테이블에 Date, Month, Quarter, WeekYear 필드가 있습니다. Week 필드는 Table2에서 로드되었으므로 계속 표시됩니다.

  8. Table2에서 Week를 클릭합니다. 필드에 null이 아닌 값 수가 628로 미리 보기에 표시됩니다. 그러나 다른 필드를 클릭하면 null이 아닌 값 수가 1256으로 표시됩니다. WeekTable2에서 한 번만 로드되었습니다. 값 또는 레코드 수는 Table2Table2a의 레코드 수 합계입니다.

연결 방지

로드한 두 개 이상의 테이블에서 필드 이름과 필드의 수가 완전히 동일한 경우 Qlik Sense는 자동으로 여러 문의 내용을 한 테이블로 연결합니다. NoConcatenate 문을 사용하면 이를 방지할 수 있습니다. 그러면 연관된 LOAD 또는 SELECT 문을 사용하여 로드된 테이블이 기존 테이블과 컨케트네이트되지 않습니다.

다음과 같이 하십시오.

  1. 두 테이블의 내용을 완전히 분리할 수 있도록 하려면 Table2aLOAD 문에 NoConcatenate를 추가하고 Qlik Sense가 일치하는 필드를 기반으로 가상 키를 만들지 않도록 필드 이름을 바꿉니다. 두 테이블이 동일한 필드를 갖도록 Table2Week에 대한 주석 처리를 제거합니다.
  2. 이제 스크립트는 다음과 같습니다.

    Table2: LOAD "Date", Month (Date) as "Month", Quarter, "Week", "Year" FROM [lib://DataFiles/Dates.xlsx] (ooxml, embedded labels, table is Dates); Table2a: NoConcatenate LOAD "Date" as "Date2", Month (Date) as "Month2", Quarter as "Quarter2", "Week" as "Week2", "Year" as "Year2" FROM [lib://DataFiles/Dates.xlsx] (ooxml, embedded labels, table is Dates); 

  3. 데이터 로드를 클릭합니다.
  4. 데이터 모델 뷰어를 엽니다.
  5. 이제 두 테이블이 완전히 분리되었음을 알 수 있습니다.

    Table2Table 2a를 보여 주는 데이터 모델 뷰어
    Data model viewer showing Table2 and Table 2a.

  6. 이제 연결에 대한 데모가 완료되었으므로 Table2a가 더 이상 필요하지 않습니다. LOAD 문에서 Table2a에 대한 모든 행을 삭제한 다음 데이터 로드를 클릭합니다.