Advertisement
Guest User

Untitled

a guest
May 24th, 2015
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.76 KB | None | 0 0
  1. -- For each post P1, generate a list of other posts which are recommended by the same users
  2. -- who recommended the post P1 Ordered by frequecy.
  3.  
  4. -- Result would be something similar to
  5.  
  6. -- p1, p2, frequency, rank
  7. -- p1, p3, frequency, rank
  8.  
  9. SELECT postId1, postId2, frequency, rank
  10. INTO similarly_voted_posts
  11. FROM
  12. (SELECT p_a.post_id postId1, p_b.post_id postId2, count(1) frequency,
  13. rank() OVER (PARTITION BY postId1 ORDER BY frequency DESC, postId2) rank
  14. FROM user_post_relations p_a
  15. JOIN user_post_relations p_b ON (
  16. p_a.user_id = p_b.user_id AND
  17. p_a.post_id != p_b.post_id AND
  18. p_a.voted_at > 0 AND
  19. p_b.voted_at > 0)
  20. GROUP BY postId1, postId2
  21. ORDER BY postId1, frequency DESC, postId2
  22. ) AS temp
  23. WHERE rank <= 10 AND
  24. frequency > 50
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement