Guest User

Untitled

a guest
Oct 17th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION player_height_rank (firstname VARCHAR, lastname VARCHAR) RETURNS int AS $$
  2. DECLARE
  3. player_rank int :=0;
  4. rank_offset int :=0;
  5. temp_height FLOAT := NULL;
  6. r record;
  7. BEGIN
  8.  
  9. FOR r in select ((p.h_feet * 30.48) + (p.h_inches * 2.54)) As height, p.firstname, p.lastname
  10. from players as p
  11. Order by ((p.h_feet * 30.48) + (p.h_inches * 2.54)) DESC, height, p.firstname, p.lastname
  12.  
  13. LOOP
  14.  
  15. IF r.height = temp_height then
  16. rank_offset := rank_offset + 1;
  17. ELSE
  18. player_rank := player_rank + rank_offset + 1;
  19. rank_offset := 0;
  20. temp_height := r.height;
  21. END IF;
  22.  
  23. IF r.firstname = $1 AND r.lastname = $2 Then
  24. RETURN player_rank;
  25. END IF;
  26. END LOOP;
  27.  
  28. --not in DB
  29. RETURN 0;
  30.  
  31.  
  32. END;
  33. $$ LANGUAGE plpgsql;
  34.  
  35. -- executing the above function
  36. -- select * from player_height_rank(‘Reggie’, ‘Miller’);
  37.  
  38.  
  39. -- function 2 declaration
  40.  
  41. CREATE OR REPLACE FUNCTION player_weight_var (tid VARCHAR, yr INTEGER)
  42. RETURNS FLOAT AS $$
  43. DECLARE
  44. variant float := 0.0;
  45.  
  46.  
  47. BEGIN
  48.  
  49. select variance(p.weight) into variant
  50. from players p, player_rs r
  51. where r.ilkid = p.ilkid and r.tid = $1 and r.year = $2;
  52.  
  53. if variant is NULL
  54. Then
  55. return -1.0;
  56.  
  57. ELSE
  58. return variant;
  59.  
  60. END IF;
  61.  
  62. END;
  63. $$ LANGUAGE plpgsql;
Add Comment
Please, Sign In to add comment