tutor/postgres/007-card-price-history-materialized-view.sql

13 lines
524 B
SQL

DROP MATERIALIZED VIEW IF EXISTS "collection_price_history";
CREATE MATERIALIZED VIEW "collection_price_history" AS
SELECT "card_prices"."date"::timestamp AS "date"
, SUM(CASE WHEN "copies"."isFoil"
THEN "card_prices"."usd_foil"
ELSE "card_prices"."usd"
END) AS "value"
FROM "cards"
JOIN "copies" USING ("scryfall_id")
JOIN "card_prices" USING ("scryfall_id")
WHERE "copies"."created_date" <= "card_prices"."date"::timestamp
GROUP BY "card_prices"."date"
ORDER BY "card_prices"."date";