SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
with recursive dates as ( select '2005-07-01' as dt union all select dt + interval 1 day from dates where dt < '2005-07-31' ), t0 as ( select store_id , date(rental_date) as rental_date , date(return_date) as return_date from inventory i join rental r on r.inventory_id = i.inventory_id where r.rental_date >= date'2005-07-01' and r.rental_date < date'2005-08-01' or r.return_date >= date'2005-07-01' and r.return_date < date'2005-08-01' ), ren as ( select rental_date , count(case when store_id = 1 then 1 end) as c1 , count(case when store_id = 2 then 1 end) as c2 , count(*) as ct from t0 where rental_date >= date'2005-07-01'and rental_date < date'2005-08-01' group by rental_date ), ret as ( select return_date , count(case when store_id = 1 then 1 end) as r1 , count(case when store_id = 2 then 1 end) as r2 , count(*) as rt from t0 where return_date >= date'2005-07-01'and return_date < date'2005-08-01' group by return_date ) select d.dt as date , ifnull(c.c1,0) as rented_at_store_1 , ifnull(r.r1,0) as returned_at_store_1 , ifnull(c.c2,0) as rented_at_store_2 , ifnull(r.r2,0) as returned_at_store_2 , ifnull(c.ct,0) as total_rented , ifnull(r.rt,0) as total_returned from dates d left join ren c on c.rental_date = d.dt left join ret r on r.return_date = d.dt ;; SHOW STATUS LIKE 'Last_query_cost';

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear