with t1 as( select b1.book_id, b1.book_title, coalesce(substr(b2.borrow_date,1,7),null) as borrow_date, count(*) as borrows from Books b1 left join BorrowRecords b2 on b1.book_id=b2.book_id group by b1.book_id,b1.book_title,coalesce(substr(b2.borrow_date,1,7),null)), t2 as( select t6.book_id, t6.book_title, sum(t6.feb_2023_borrows) as feb_2023_borrows, sum(t6.feb_2024_borrows) as feb_2024_borrows, sum(t6.jan_2024_borrows) as jan_2024_borrows, sum(t6.feb_2024_borrows) - sum(t6.feb_2023_borrows) as yoy_delta, sum(t6.feb_2024_borrows) - sum(t6.jan_2024_borrows) as mom_delta from( select book_id, book_title, if(borrow_date='2023-02',borrows,0) as feb_2023_borrows, if(borrow_date='2024-02',borrows,0) as feb_2024_borrows, if(borrow_date='2024-01',borrows,0) as jan_2024_borrows from t1) t6 group by t6.book_id,t6.book_title), t3 as( select t7.book_id, sum(t7.north)/count(*) as north_pct_2023, sum(t7.south)/count(*) as south_pct_2023, sum(t7.east)/count(*) as east_pct_2023 from( select b1.book_id, if(b2.region='华北',1,0) as north, if(b2.region='华南',1,0) as south, if(b2.region='华东',1,0) as east from BorrowRecords b1 left join Branches b2 on b1.branch_id=b2.branch_id where b1.borrow_date like '2023%') t7 group by t7.book_id), t4 as( select t5.book_id, coalesce(t3.north_pct_2023,0) as north_pct_2023, coalesce(t3.south_pct_2023,0) as south_pct_2023, coalesce(t3.east_pct_2023,0) as east_pct_2023 from Books t5 left join t3 on t5.book_id=t3.book_id) select t2.*, round(t4.north_pct_2023*100,2) as north_pct_2023, round(t4.south_pct_2023*100,2) as south_pct_2023, round(t4.east_pct_2023*100,2) as east_pct_2023 from t2 left join t4 on t2.book_id=t4.book_id order by t2.book_id,t2.book_title