code_junkie

SQL Absolute value across columns

Nov 11th, 2011
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. select max(abs(mycol)) from mytbl
  2.  
  3. select max(abs(mycol)) from mytbl
  4.  
  5. select n+abs(mycol)
  6. from zzz
  7. where abs(mycol)=(select max(abs(mycol)) from mytbl);
  8.  
  9. select word, big from myTable order by abs(big)
  10.  
  11. select sum(abs(big)) as sumbig,
  12. sum(abs(expensive)) as sumexpensive,
  13. sum(abs(smart)) as sumsmart,
  14. sum(abs(fast)) as sumfast
  15. from MyTable;
  16.  
  17. word property value
  18.  
  19. select word, 'big' as property, big as value from soquestion
  20. UNION ALLL
  21. select word, 'expensive', expensive from soquestion
  22. UNION ALL
  23. ...
  24.  
  25. select word, max(value),
  26. (select property from soquestion t2
  27. where t1.word = t2.word and t2.value = max(t1.value))
  28. from soquestion t1
  29. group by word
  30.  
  31. #!/usr/bin/env python
  32.  
  33. import sqlite3
  34.  
  35. conn = sqlite3.connect('so_question.sqlite')
  36. cur = conn.cursor()
  37.  
  38. cur.execute('create table soquestion (word, big, expensive, smart, fast)')
  39. cur.execute("insert into soquestion values ('dog', 9, -10, -20, 4)")
  40. cur.execute("insert into soquestion values ('professor', 2, 4, 40, -7)")
  41. cur.execute("insert into soquestion values ('ferrari', 7, 50, 0, 48)")
  42. cur.execute("insert into soquestion values ('alaska', 10, 0, 1, 0)")
  43. cur.execute("insert into soquestion values ('gnat', -3, 0, 0, 0)")
  44.  
  45. cur.execute("select * from soquestion")
  46. all = cur.fetchall()
  47.  
  48. definition_list = ['word', 'big', 'expensive', 'smart', 'fast']
  49.  
  50. def show_distinct(db_tuple, def_list=definition_list):
  51. minimum = min(db_tuple[1:])
  52. maximum = max(db_tuple[1:])
  53. if abs(minimum) > maximum:
  54. print db_tuple[0], 'is not', def_list[list(db_tuple).index(minimum)]
  55. elif maximum > abs(minimum):
  56. print db_tuple[0], 'is', def_list[list(db_tuple).index(maximum)]
  57. else:
  58. print 'no distinct value'
  59.  
  60. for item in all:
  61. show_distinct(item)
Add Comment
Please, Sign In to add comment