20211116190541

WITH
  users AS (
  SELECT
    *
  FROM
    `logs.registeredUsers`),
  initiallyForgotten AS (
  SELECT
    DISTINCT userID,
    schedule,
    users.timestamp AS registrationDate,
    cardID
  FROM
    `logs.reviews`
  JOIN
    `users`
  USING
    (userID)
  WHERE
    sessionID IS NULL AND reviewMarking = “remembered” AND
    cardID IN(
    SELECT
      cardID
    FROM
      `logs.latestEssaysCards`
    WHERE
      essayName=“qcvc”)
   ),
  subsequentReviews AS (
  SELECT
    *,
    RANK() OVER (PARTITION BY userID, cardID ORDER BY timestamp) AS fullReviewCount
  FROM
    `logs.reviews`
  JOIN
    initiallyForgotten
  USING
    (userID,
      cardID)
  WHERE
    sessionID IS NOT NULL
    AND (beforeInterval > 1000*60*60*48 OR schedule=“original”) AND (schedule != “aggressiveStart” OR registrationDate > TIMESTAMP(“2019-09-09”)))
SELECT
  beforeInterval / (1000*60*60*24),
  COUNT(DISTINCT userID) AS N,
  COUNT(*) AS promptN,
  COUNTIF(reviewMarking=“remembered”) / COUNT(*) AS accuracy
FROM
  subsequentReviews
WHERE
  fullReviewCount = 1
GROUP BY
  beforeInterval
ORDER BY
  beforeInterval
Last updated 2023-07-13.