Window and CTE
Common Table Expressions (CTE)
dates_in_september = Clear::SQL.select({
day_start: "generate_series(date '2018-09-01', date '2018-09-30', '1 day'::interval)",
day_end: "generate_series(date '2018-09-01', date '2018-09-30', '1 day'::interval) + '1 day'::interval";
})
Clear::SQL.select({
count: "COUNT(users.*)",
day: "dates.day_start"
})
.with_cte(dates: dates_in_septembers)
.from("dates")
.left_joins(User.table){ (users.created_at >= day_start) & (users.created_at < day_end) }
.group_by("dates.day_start")
.order_by("dates.day_start")
.fetch do |hash|
puts "users created the #{hash["day"]}: #{hash["count"]}"
endWindow
Last updated