def get_results(self, start_date, end_date): query = select([ label('user_id', self.sql_table.c.user_id), label('count', func.count(self.sql_table.c.doc_id)) ]).where( and_( operators.ge(self.sql_table.c.time_end, start_date), operators.lt(self.sql_table.c.time_end, end_date), operators.in_op(self.sql_table.c.user_id, self.users_needing_data))).group_by( self.sql_table.c.user_id) return self._run_query(query)
def get_results(self, start_date, end_date): query = select([ label('user_id', self.sql_table.c.user_id), label('count', func.count(self.sql_table.c.doc_id)) ]).where(and_( operators.ge(self.sql_table.c.time_end, start_date), operators.lt(self.sql_table.c.time_end, end_date), operators.in_op(self.sql_table.c.user_id, self.users_needing_data) )).group_by( self.sql_table.c.user_id ) return self._run_query(query)
def test_any_all_operators(self): """ Tests the functionality of the ANY and ALL operators. """ ops_exp = { operators.any_op: {'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', 'foobar'}, operators.all_op: {'foobar'} } for op, exp in ops_exp.items(): res = self.engine.execute( sql.select([self.table.c.c0]). \ where(operators.ge( self.table.c.c2, op(sql.select([self.table.c.c3]).as_scalar())))) assert(set([row[0] for row in res]) == exp)
def get_results(self, xmlns, indicator_type, start_date, end_date): if indicator_type == TYPE_DURATION: aggregation = func.avg(self.sql_table.c.duration) else: aggregation = func.count(self.sql_table.c.doc_id) query = select([ label('user_id', self.sql_table.c.user_id), label('count', aggregation) ]).where( and_( operators.ge(self.sql_table.c.time_end, start_date), operators.lt(self.sql_table.c.time_end, end_date), operators.in_op(self.sql_table.c.user_id, self.users_needing_data), self.sql_table.c.xmlns == xmlns, )).group_by(self.sql_table.c.user_id) return self._run_query(query)
def get_results(self, xmlns, indicator_type, start_date, end_date): if indicator_type == TYPE_DURATION: aggregation = func.avg(self.sql_table.c.duration) else: aggregation = func.count(self.sql_table.c.doc_id) query = select([ label('user_id', self.sql_table.c.user_id), label('count', aggregation) ]).where(and_( operators.ge(self.sql_table.c.time_end, start_date), operators.lt(self.sql_table.c.time_end, end_date), operators.in_op(self.sql_table.c.user_id, self.users_needing_data), self.sql_table.c.xmlns == xmlns, )).group_by( self.sql_table.c.user_id ) return self._run_query(query)