题解 | 统计借阅量

统计借阅量

https://www.nowcoder.com/practice/280ed56ab3ee49a4b2a4595d38e1d565

with t1 as (
select br.book_id,book_title,
sum(if(borrow_date like '2023-02%',1,0)) as feb_2023_borrows,
sum(if(borrow_date like '2024-02%',1,0)) as feb_2024_borrows,
sum(if(borrow_date like '2024-01%',1,0)) as jan_2024_borrows
from BorrowRecords as br 
left join Books as b on b.book_id = br.book_id
group by br.book_id
),
t2 as (
select br.book_id,book_title,
round(sum(if(region='华北',1,0))/count(br.book_id)*100,2) as north_pct_2023,
round(sum(if(region='华东',1,0))/count(br.book_id)*100,2) as east_pct_2023,
round(sum(if(region='华南',1,0))/count(br.book_id)*100,2) as south_pct_2023
from BorrowRecords as br 
left join Books as b on b.book_id = br.book_id
left join Branches as r on r.branch_id = br.branch_id
where year(borrow_date) = 2023
group by br.book_id
)
select 
b.book_id,b.book_title,
coalesce(feb_2023_borrows,0) as feb_2023_borrows,
coalesce(feb_2024_borrows,0) as feb_2024_borrows,
coalesce(jan_2024_borrows,0) as jan_2024_borrows,
coalesce(feb_2024_borrows,0) - coalesce(feb_2023_borrows,0) as yoy_delta,
coalesce(feb_2024_borrows,0) - coalesce(jan_2024_borrows,0) as mom_delta,
coalesce(north_pct_2023,0.00) as north_pct_2023,
coalesce(south_pct_2023,0.00) as south_pct_2023,
coalesce(east_pct_2023,0.00) as east_pct_2023
from Books as b
left join t1 on t1.book_id = b.book_id
left join t2 on b.book_id = t2.book_id
order by b.book_id



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务