Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

az-index.sql 1.1 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  1. CREATE INDEX IF NOT EXISTS az_rating_user_idx ON az.raw_ratings (user_key);
  2. CREATE INDEX IF NOT EXISTS az_rating_asin_idx ON az.raw_ratings (asin);
  3. ANALYZE az.raw_ratings;
  4. DROP TABLE IF EXISTS az.user_ids CASCADE;
  5. CREATE TABLE az.user_ids (
  6. user_id SERIAL PRIMARY KEY,
  7. user_key VARCHAR NOT NULL,
  8. UNIQUE (user_key)
  9. );
  10. INSERT INTO az.user_ids (user_key) SELECT DISTINCT user_key FROM az.raw_ratings;
  11. ANALYZE az.user_ids;
  12. INSERT INTO isbn_id (isbn)
  13. SELECT DISTINCT asin
  14. FROM az.raw_ratings WHERE asin NOT IN (SELECT isbn FROM isbn_id);
  15. ANALYZE isbn_id;
  16. DROP VIEW IF EXISTS az.rating;
  17. CREATE VIEW az.rating
  18. AS SELECT user_id, COALESCE(cluster, bc_of_isbn(isbn_id)) AS book_id,
  19. MEDIAN(rating) AS rating,
  20. (array_agg(rating ORDER BY rating_time DESC))[1] AS last_rating,
  21. MEDIAN(rating_time) AS timestamp,
  22. COUNT(rating) AS nratings
  23. FROM az.raw_ratings
  24. JOIN az.user_ids USING (user_key)
  25. JOIN isbn_id ON (isbn = asin)
  26. LEFT JOIN isbn_cluster USING (isbn_id)
  27. GROUP BY user_id, COALESCE(cluster, bc_of_isbn(isbn_id));
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...