title: Fill values by user in BigQuery
body: <p>I've got data on how a set of customers spend money on a daily basis, with the following structure in BigQuery:</p>
  <pre class="lang-sql prettyprint-override"><code>CREATE TABLE if not EXISTS daily_spend (
    user_id int,
    created_at DATE,
    value float
  );
  
  INSERT INTO daily_spend VALUES
  (1, '2021-01-01', 0),
  (1, '2021-01-02', 1),
  (1, '2021-01-04', 1),
  (1, '2021-01-05', 2),
  (1, '2021-01-07', 5),
  (2, '2021-01-01', 5),
  (2, '2021-01-03', 0),
  (2, '2021-01-04', 1),
  (2, '2021-01-06', 2);
  </code></pre>
  <p>I'd like to complete the data for each user by putting 0's in the days the users didn't spent any money, only including days between their first and last days spending money.</p>
  <p>So, the output table in this example would have the following values:</p>
  <pre class="lang-sql prettyprint-override"><code>(1, '2021-01-01', 0),
  (1, '2021-01-02', 1),
  (1, '2021-01-03', 0),
  (1, '2021-01-04', 1),
  (1, '2021-01-05', 2),
  (1, '2021-01-06', 0),
  (1, '2021-01-07', 5),
  (2, '2021-01-01', 5),
  (2, '2021-01-02', 0),
  (2, '2021-01-03', 0),
  (2, '2021-01-04', 1),
  (2, '2021-01-05', 0),
  (2, '2021-01-06', 2)
  </code></pre>
  <p>What's the simplest way of doing this in BigQuery?</p>