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

bx-index.sql 2.0 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  1. CREATE INDEX IF NOT EXISTS bx_rating_user_idx ON bx_ratings (user_id);
  2. CREATE INDEX IF NOT EXISTS bx_rating_isbn_idx ON bx_ratings (isbn);
  3. ANALYZE bx_ratings;
  4. INSERT INTO isbn_id (isbn)
  5. SELECT DISTINCT isbn
  6. FROM bx_ratings WHERE isbn NOT IN (SELECT isbn FROM isbn_id);
  7. ANALYZE isbn_id;
  8. INSERT INTO loc_isbn_book_id (isbn, book_id)
  9. WITH bad_isbns AS (SELECT DISTINCT isbn
  10. FROM bx_ratings br
  11. WHERE NOT EXISTS (SELECT * FROM loc_isbn_book_id ib WHERE ib.isbn = br.isbn))
  12. SELECT isbn, nextval('loc_synthetic_book_id') FROM bad_isbns;
  13. ANALYZE loc_isbn_book_id;
  14. DROP VIEW IF EXISTS bx_loc_explicit_ratings;
  15. CREATE VIEW bx_loc_explicit_ratings
  16. AS SELECT user_id, COALESCE(cluster, bc_of_isbn(isbn_id)) AS book_id,
  17. MEDIAN(rating) AS rating, COUNT(rating) AS nratings
  18. FROM bx_ratings
  19. JOIN isbn_id USING (isbn)
  20. LEFT JOIN loc_isbn_cluster USING (isbn_id)
  21. WHERE rating > 0
  22. GROUP BY user_id, book_id;
  23. DROP VIEW IF EXISTS bx_loc_all_ratings;
  24. CREATE VIEW bx_loc_all_ratings
  25. AS SELECT user_id, COALESCE(cluster, bc_of_isbn(isbn_id)) AS book_id,
  26. MEDIAN(rating) AS rating, COUNT(rating) AS nratings
  27. FROM bx_ratings
  28. JOIN isbn_id USING (isbn)
  29. LEFT JOIN loc_isbn_cluster USING (isbn_id)
  30. GROUP BY user_id, book_id;
  31. DROP VIEW IF EXISTS bx_explicit_ratings;
  32. CREATE VIEW bx_explicit_ratings
  33. AS SELECT user_id, COALESCE(cluster, bc_of_isbn(isbn_id)) AS book_id,
  34. MEDIAN(rating) AS rating, COUNT(rating) AS nratings
  35. FROM bx_ratings
  36. JOIN isbn_id USING (isbn)
  37. LEFT JOIN isbn_cluster USING (isbn_id)
  38. WHERE rating > 0
  39. GROUP BY user_id, book_id;
  40. DROP VIEW IF EXISTS bx_all_ratings;
  41. CREATE VIEW bx_all_ratings
  42. AS SELECT user_id, COALESCE(cluster, bc_of_isbn(isbn_id)) AS book_id,
  43. MEDIAN(rating) AS rating, COUNT(rating) AS nratings
  44. FROM bx_ratings
  45. JOIN isbn_id USING (isbn)
  46. LEFT JOIN isbn_cluster USING (isbn_id)
  47. GROUP BY user_id, book_id;
Tip!

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

Comments

Loading...