Advertisement
Guest User

Untitled

a guest
Sep 13th, 2017
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION calculate_network(INTEGER,INTEGER)
  2. RETURNS void AS
  3. $$
  4. WITH RECURSIVE all_friends AS
  5. (
  6.         SELECT befreundetmit,freundvon,freundschaftsgrad FROM istbefreundetmit          
  7.         UNION
  8.            SELECT af.befreundetmit,f.freundvon,af.freundschaftsgrad
  9.            FROM all_friends af join istbefreundetmit f
  10.            ON af.freundvon = f.befreundetmit
  11. )
  12. SELECT DISTINCT count(*)
  13. FROM all_friends
  14. WHERE freundvon = $1 AND freundschaftsgrad > $2 AND befreundetmit != $1;
  15.  
  16.  
  17. UPDATE freunde SET anzahl = (SELECT DISTINCT count(*)
  18.                             FROM all_friends
  19.                             WHERE freundvon = $1 AND freundschaftsgrad > $2 AND befreundetmit != $1)
  20. WHERE freundid = $1;
  21.  
  22. $$
  23. language 'sql';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement