Class: Lookout::Stats::VisitDurationQuery
- Inherits:
-
BaseQuery
- Object
- ApplicationQuery
- BaseQuery
- Lookout::Stats::VisitDurationQuery
- Defined in:
- app/queries/lookout/stats/visit_duration_query.rb
Instance Attribute Summary
Attributes inherited from ApplicationQuery
Instance Method Summary collapse
Methods included from LazyComparableQuery
Methods included from ComparableQuery
Methods inherited from ApplicationQuery
call, inherited, #initialize, #inspect
Constructor Details
This class inherits a constructor from Lookout::ApplicationQuery
Instance Method Details
#build ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/queries/lookout/stats/visit_duration_query.rb', line 4 def build events = event_query .reselect("max(#{Lookout.event.table_name}.time) - min(#{Lookout.event.table_name}.time) as duration, #{Lookout.event.table_name}.visit_id") .group("#{Lookout.event.table_name}.visit_id") # PostgreSQL has duration type, SQLite stores as numeric seconds duration_cast = Lookout::DatabaseAdapter.postgresql? ? "duration::duration" : "duration" ::Ahoy::Visit .select("#{duration_cast} as duration, started_at") .from(events, :views_per_visit_table) .joins("inner join #{Lookout.visit.table_name} on #{Lookout.visit.table_name}.id = views_per_visit_table.visit_id") end |