Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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'})
Beispiel #4
0
    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)
Beispiel #5
0
    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)