>source

일부 필드를 포함하는 데이터 세트가 있습니다 : month customer_id row_num  (RANK) 및 verified_date .

순위 필드는 첫 번째 ( 1 )를 나타냅니다. ) 및 두 번째 ( 2 ) ) 각 고객의 구매. 각 고객의 첫 구매와 두 번째 구매의 시차를 알고 싶습니다.  = its first month 의 달  = 1.

https://i.ibb.co/PjJk5Y0/Capture.png

예상 결과는 아래 이미지와 같습니다 :

https://i.ibb.co/y5Mww7k/Capture-2.png

row_num 를 사용하고 있습니다   StandardSQL .

Google Bigquery

row_num, verified_date from table GROUP BY 1, 2```

  • 답변 # 1

    우리는 customer_id 로 집계하여 피벗 쿼리를 사용해 볼 수 있습니다. :

    SELECT
        MAX(CASE WHEN row_num = 1 THEN month END) AS month,
        customer_id,
        1 AS row_num,
        DATE_DIFF(MAX(CASE WHEN row_num = 2 THEN verified_date END),
                  MAX(CASE WHEN row_num = 1 THEN verified_date END), DAY) AS difference
    FROM yourTable
    GROUP BY
        customer_id;
    
    

관련 자료

  • 이전 c++ - directx sdk 2010 년 6 월 - 모든 앱 종료시 xaudio2 충돌
  • 다음 google analytics - 스크롤 깊이 보고서 이해