cool_query.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import model
  2. from client_controller import _my_tabulate
  3. model.connect()
  4. model.cursor.execute('''
  5. EXPLAIN QUERY PLAN
  6. SELECT name, course,
  7. (SELECT SUM(amount)
  8. FROM ownership
  9. WHERE ownership.ownable_id = ownables_with_course.rowid) market_size
  10. FROM (SELECT
  11. name, ownables.rowid,
  12. CASE WHEN ownables.rowid = ?
  13. THEN 1
  14. ELSE (SELECT price
  15. FROM transactions
  16. WHERE ownable_id = ownables.rowid
  17. ORDER BY rowid DESC -- equivalent to ordering by dt
  18. LIMIT 1) END course
  19. FROM ownables) ownables_with_course
  20. '''.replace('?', '1'))
  21. # model.cursor.execute('''
  22. # SELECT 2
  23. # UNION ALL
  24. # SELECT * FROM (
  25. # WITH RECURSIVE ones(x) AS (VALUES(1) UNION ALL SELECT * FROM ones)
  26. # SELECT x FROM ones)
  27. # LIMIT 1
  28. # '''.replace('?','1'))
  29. # model.cursor.execute('''SELECT CASE CAST(1+(0.5 - RANDOM() / CAST(-9223372036854775808 AS REAL) / 2)*3 AS INTEGER)
  30. # WHEN 1 THEN 'one'
  31. # WHEN 2 THEN 'two'
  32. # WHEN 3 THEN 'three'
  33. # END
  34. # FROM (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) v
  35. # '''.replace('?','1'))
  36. # model.cursor.execute('''
  37. # SELECT *
  38. # FROM (SELECT RANDOM() / CAST(-9223372036854775808 AS REAL) / 2) r, (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) v
  39. # '''.replace('?','1'))
  40. print(_my_tabulate(model.cursor.fetchall(), tablefmt='pipe'))