q97.sql 970 B

123456789101112131415161718192021222324252627282930
  1. WITH ssci AS (
  2. SELECT
  3. ss_customer_sk customer_sk,
  4. ss_item_sk item_sk
  5. FROM store_sales, date_dim
  6. WHERE ss_sold_date_sk = d_date_sk
  7. AND d_month_seq BETWEEN 1200 AND 1200 + 11
  8. GROUP BY ss_customer_sk, ss_item_sk),
  9. csci AS (
  10. SELECT
  11. cs_bill_customer_sk customer_sk,
  12. cs_item_sk item_sk
  13. FROM catalog_sales, date_dim
  14. WHERE cs_sold_date_sk = d_date_sk
  15. AND d_month_seq BETWEEN 1200 AND 1200 + 11
  16. GROUP BY cs_bill_customer_sk, cs_item_sk)
  17. SELECT
  18. sum(CASE WHEN ssci.customer_sk IS NOT NULL AND csci.customer_sk IS NULL
  19. THEN 1
  20. ELSE 0 END) store_only,
  21. sum(CASE WHEN ssci.customer_sk IS NULL AND csci.customer_sk IS NOT NULL
  22. THEN 1
  23. ELSE 0 END) catalog_only,
  24. sum(CASE WHEN ssci.customer_sk IS NOT NULL AND csci.customer_sk IS NOT NULL
  25. THEN 1
  26. ELSE 0 END) store_and_catalog
  27. FROM ssci
  28. FULL OUTER JOIN csci ON (ssci.customer_sk = csci.customer_sk
  29. AND ssci.item_sk = csci.item_sk)
  30. LIMIT 100