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_logical_operators(self): """ Tests the functionality of the following logical operators: AND, OR """ res = self.engine.execute( sql.select([self.table.c.c0]). \ where(operators.and_( operators.gt(self.table.c.c2, 3), operators.lt(self.table.c.c2, 7)))) assert(set([row[0] for row in res]) == {'fox', 'jumps', 'over'}) res = self.engine.execute( sql.select([self.table.c.c0]). \ where(operators.or_( operators.lt(self.table.c.c2, 3), operators.gt(self.table.c.c2, 7)))) assert(set([row[0] for row in res]) == {'the', 'quick', 'lazy', 'dog', 'foobar'})
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)
def search_operator_less(cls, model_column: Column, value): return lt(model_column, value)