79133493

Date: 2024-10-28 13:03:55
Score: 0.5
Natty:
Report link

I found a way to avoid some of not supported commands in standard SQL :

WITH rolling_dates AS (
  SELECT 
    DATE '2024-01-07' AS flash_date 
  UNION ALL
  SELECT DATE_ADD(DATE '2024-01-07', INTERVAL 1 QUARTER) 
  UNION ALL
  SELECT DATE_ADD(DATE '2024-01-07', INTERVAL 2 QUARTER) 
  UNION ALL
  SELECT DATE_ADD(DATE '2024-01-07', INTERVAL 3 QUARTER) 
  UNION ALL
  SELECT DATE_ADD(DATE '2024-01-07', INTERVAL 4 QUARTER) 
)
SELECT 
  * EXCEPT(rn)
FROM (
  SELECT *, 
         ROW_NUMBER() OVER (PARTITION BY S.id, flash_date ORDER BY provided_at DESC) AS rn
  FROM table S
  CROSS JOIN rolling_dates
  WHERE deleted.at IS NULL 
    AND provided_at <= TIMESTAMP(flash_date)
) 
WHERE rn = 1

With this request, I can create my view and use it now.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Michiyo