Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.50 KB | None | 0 0
  1. from sqlalchemy import create_engine
  2. from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
  3. from sqlalchemy.ext.sqlsoup import SqlSoup
  4.  
  5. import datetime
  6. import sys
  7.  
  8. sql = """SELECT COUNT(click.id) AS click_count,
  9.           COUNT(transaction.id) AS transaction_count,
  10.           SUM(transaction.sale) AS sales_total,
  11.           SUM(transaction.commission) AS commission_total,
  12.                    store.id AS id,
  13.                    store.name AS label
  14.           FROM analytics2_clickfact as click
  15.           LEFT JOIN analytics2_transactiondimension as transaction on click.transaction_id = transaction.id
  16.           INNER JOIN store as store on click.store_id = store.id
  17.           %s
  18.           GROUP BY store.id
  19.           ORDER BY commission_total DESC
  20.           LIMIT 50
  21.      """
  22.  
  23. engine = create_engine('mysql://root:0411@localhost/analytics2',
  24.                        echo = True)
  25.  
  26. db = SqlSoup(MetaData(engine))
  27.  
  28. def main():
  29.     click = db.analytics2_clickfact
  30.     date = db.analytics2_datedimension
  31.     transaction = db.analytics2_transactiondimension
  32.     campaign = db.analytics2_campaigndimension
  33.     page = db.analytics2_pagedimension
  34.     remotehost = db.analytics2_remotehostdimension
  35.     type = db.analytics2_typedimension
  36.  
  37.     startdate = datetime.date(month=9, day=11, year=2009)
  38.     enddate = datetime.date(month=9, day=11, year=2009)
  39.  
  40.     #join = db.join(click, date, click.clicked_id==date.id)
  41.     #join = db.join(join, transaction)
  42.  
  43.     #query = join.\
  44.     #    filter(date.date>=startdate).\
  45.     #    filter(date.date<=enddate).\
  46.     #    group_by(click.store_id)
  47.  
  48.     #query = db.join(query, transaction, isouter=True).query()
  49.  
  50.  
  51.     #query = db.join(click, date, click.clicked_id==date.id).query() #.filter(transaction.commission!=None)
  52.  
  53.     #query = query.query()
  54.     from sqlalchemy import select, func
  55.     from sqlalchemy.sql import and_, or_, not_
  56.  
  57.     click_table = click._table
  58.     transaction_table = transaction._table
  59.     date_table = date._table
  60.  
  61.     facts = select([click_table.c.id, func.sum(transaction_table.c.commission)],
  62.                    and_(date.date>=startdate, date.date<=enddate),
  63.                    from_obj=[click_table.join(transaction_table, isouter=False).join(date_table, click_table.c.clicked_id==date_table.c.id)],
  64.                    group_by=[click_table.c.store_id])
  65.  
  66.     print dir(facts)
  67.     facts = facts.limit(5)
  68.  
  69.     for fact in facts.execute():
  70.         print fact
  71.  
  72. if __name__ == '__main__':
  73.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement