'BigQuery Script for Getting Average Days of Specific Date Period

I need to build a query for days on market (DOM) for Jan 2021 = AVG(sold date - contract date) for all properties that sold date is [20210101 =< Sold Date =< 20210131]

This is what I have written:

SELECT AVG(DATE_DIFF(field_3102,field_3103)) as DOM 
   FROM `winter-agility-327715.Properties_dataset.Final_Table` 
WHERE field_3102 BETWEEN '2021-01-01' AND '2021-01-31'

field_3102 is basically sold date



Solution 1:[1]

The overall logic on your written query already matches the above requirement. However, it will not run because of a syntax error using DATE_DIFF() function. To correct this, you must specify a date_part on your DATE_DIFF() function. You may refer to this BigQuery - DATE_DIFF Documentation for more details.

See below updated query.

SELECT AVG(DATE_DIFF(field_3102,field_3103,DAY)) as DOM 
   FROM `winter-agility-327715.Properties_dataset.Final_Table` 
WHERE field_3102 BETWEEN '2021-01-01' AND '2021-01-31'

Since your query requirement is DAYS on market, we used the date_part "DAY" for us to return the intervals in DAYS.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Scott B