q73.sql 1.1 KB

123456789101112131415161718192021222324252627282930
  1. SELECT
  2. c_last_name,
  3. c_first_name,
  4. c_salutation,
  5. c_preferred_cust_flag,
  6. ss_ticket_number,
  7. cnt
  8. FROM
  9. (SELECT
  10. ss_ticket_number,
  11. ss_customer_sk,
  12. count(*) cnt
  13. FROM store_sales, date_dim, store, household_demographics
  14. WHERE store_sales.ss_sold_date_sk = date_dim.d_date_sk
  15. AND store_sales.ss_store_sk = store.s_store_sk
  16. AND store_sales.ss_hdemo_sk = household_demographics.hd_demo_sk
  17. AND date_dim.d_dom BETWEEN 1 AND 2
  18. AND (household_demographics.hd_buy_potential = '>10000' OR
  19. household_demographics.hd_buy_potential = 'unknown')
  20. AND household_demographics.hd_vehicle_count > 0
  21. AND CASE WHEN household_demographics.hd_vehicle_count > 0
  22. THEN
  23. household_demographics.hd_dep_count / household_demographics.hd_vehicle_count
  24. ELSE NULL END > 1
  25. AND date_dim.d_year IN (1999, 1999 + 1, 1999 + 2)
  26. AND store.s_county IN ('Williamson County', 'Franklin Parish', 'Bronx County', 'Orange County')
  27. GROUP BY ss_ticket_number, ss_customer_sk) dj, customer
  28. WHERE ss_customer_sk = c_customer_sk
  29. AND cnt BETWEEN 1 AND 5
  30. ORDER BY cnt DESC