diff --git a/models/x_analysis.py b/models/x_analysis.py index 373c905..bdcf332 100644 --- a/models/x_analysis.py +++ b/models/x_analysis.py @@ -75,6 +75,11 @@ class XAnalysis: elif comparator == '!=': where.append(col != ftv[0]) + elif comparator == 'not like': + where.append(col.notlike(f'%{ftv[0]}%')) + + elif comparator == 'like': + where.append(col.like(f'%{ftv[0]}%')) return where @@ -99,10 +104,15 @@ class XAnalysis: sa.Column('date') > self.event_view['startTime'].split(' ')[0], sa.Column('date') <= self.event_view['endTime'].split(' ')[0] ] - where_ext = self.handler_filts() - qry = sa.select().where(*where, *where_ext) + qry = sa.select().where(*where) sql = str(qry.compile(compile_kwargs={"literal_binds": True})) where_str = sql.split('WHERE ')[1] + + where_order = self.handler_filts() + qry = sa.select().where(*where_order) + sql = str(qry.compile(compile_kwargs={"literal_binds": True})) + where_order_str = sql.split('WHERE ')[1] + sql = f"""SELECT toString(reg.date) as date, cnt1, {select_ltv_str} @@ -120,7 +130,7 @@ class XAnalysis: and {where_str}) as a left join (select `{quota}`, unitPrice/100 as money, toDate(addHours(`#event_time`, `#zone_offset`)) as date from {self.game}.event - where `#event_name` = 'pay') b + where `#event_name` = 'pay' and {where_order_str}) b on a.`{quota}` = b.`{quota}` group by a.date) log on reg.date = log.date order by date