>

Microsoft Power BI로 가져온 테이블 구조는 다음과 같습니다.

ItemID 를 분할하는 방법  그리고 Quantity  쉼표로 구분 된 값은 예를 들어

테이블은 Google BigQuery 데이터베이스에 저장되므로 (표준) SQL 쿼리를 통해 문제를 해결할 수 있다면 기꺼이 알게됩니다.

  • 답변 # 1

    다음은 BigQuery Standard SQL 용입니다.

      
    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT '1' TransactionID, '1,2,3' ItemID, '1,1,1' Quantity, 6500 revenue UNION ALL
      SELECT '2', '1,3', '1,2', 4000 UNION ALL
      SELECT '3', '1,2', '', 3000 
    )
    SELECT TransactionID, ItemID, Quantity, revenue
    FROM `project.dataset.table`, 
    UNNEST(SPLIT(ItemId)) AS ItemID WITH OFFSET pos1,
    UNNEST(SPLIT(Quantity)) AS Quantity WITH OFFSET pos2
    WHERE pos1 = pos2 OR Quantity = ''
    ORDER BY TransactionID
    
    

    출력이

    TransactionID   ItemID  Quantity    revenue  
    1               1       1           6500     
    1               2       1           6500     
    1               3       1           6500     
    2               1       1           4000     
    2               3       2           4000     
    3               1                   3000     
    3               2                   3000      
    
    

    예를 들어 항목 수가 수량에 해당하지 않는 경우 등을 처리하기 위해 조정해야하는 방향

    예를 들어, 아래와 같은

    #standardSQL
    WITH `project.dataset.table` AS (
      SELECT '1' TransactionID, '1,2,3' ItemID, '1,11,111' Quantity, 6500 revenue UNION ALL
      SELECT '2', '1,3', '1111', 4000 UNION ALL
      SELECT '3', '1,2', '', 3000 
    )
    SELECT 
      TransactionID, ItemID,
      IFNULL((SELECT q
        FROM UNNEST(SPLIT(Quantity)) AS q WITH OFFSET pos2 
        WHERE pos2 = pos
      ), '') Quantity,
      revenue
    FROM (
      SELECT TransactionID, ItemID, Quantity, revenue , pos
      FROM `project.dataset.table`, 
      UNNEST(SPLIT(ItemId)) AS ItemID WITH OFFSET pos
    )
    ORDER BY TransactionID, pos
    
    

  • 답변 # 2

    SQL 응답에 만족하면 PIVOT TABLES를 사용하는 것이 좋습니다.

    행을 열로 변환하는 좋은 방법이며 동일한 테이블에 여러 조인을 수행하는 것보다 훨씬 덜 지저분합니다.

    검색 할 대상을 알고 나면 여기에 정식 버전이 게시되어 있지 않습니다.

    행운.

  • 이전 r - ID와 세그먼트 내에서 일련의 연속적인 숫자 식별
  • 다음 excel - python - 대략적인 비교를 수행하거나 비교할 값에 특정 수준의 공차를 추가하는 방법