Saya memiliki tabel di mana saya perlu menemukan minggu sebelumnya dari tanggal saat ini sebagai benar atau salah. Silakan lihat tabel di bawah ini. masukkan deskripsi gambar di sini google-bigquery

1
Nrad 2 Juli 2020, 05:00

1 menjawab

Jawaban Terbaik

Di bawah ini untuk BigQuery Standard SQL

#standardSQL
SELECT 
  ReportDate, 
  ReportWeekCommencing,
  EXTRACT(WEEK FROM ReportDate) = EXTRACT(WEEK FROM ReportWeekCommencing) AS WeekToDate,
  EXTRACT(WEEK FROM DATE_SUB(ReportDate, INTERVAL 1 WEEK)) = EXTRACT(WEEK FROM ReportWeekCommencing) AS PreviousWeek
FROM `project.dataset.table`   

Anda dapat menguji, bermain dengan di atas menggunakan data dummy seperti pada contoh di bawah ini

#standardSQL
WITH `project.dataset.table` AS (
  SELECT DATE '2020-06-18' ReportDate, DATE '2020-06-14' ReportWeekCommencing UNION ALL
  SELECT '2020-03-31', '2020-03-29' UNION ALL
  SELECT '2020-03-29', '2020-03-22' UNION ALL
  SELECT '2020-03-24', '2020-03-22' UNION ALL
  SELECT '2020-03-27', '2020-03-10' 
)
SELECT 
  ReportDate, 
  ReportWeekCommencing,
  EXTRACT(WEEK FROM ReportDate) = EXTRACT(WEEK FROM ReportWeekCommencing) AS WeekToDate,
  EXTRACT(WEEK FROM DATE_SUB(ReportDate, INTERVAL 1 WEEK)) = EXTRACT(WEEK FROM ReportWeekCommencing) AS PreviousWeek
FROM `project.dataset.table`   

Dengan keluaran

Row ReportDate  ReportWeekCommencing    WeekToDate  PreviousWeek     
1   2020-06-18  2020-06-14          true            false    
2   2020-03-31  2020-03-29          true            false    
3   2020-03-29  2020-03-22          false           true     
4   2020-03-24  2020-03-22          true            false    
5   2020-03-27  2020-03-10          false           false
2
Mikhail Berlyant 2 Juli 2020, 02:42