题解 | 统计借阅量

统计借阅量

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

select
    bk.book_id,
    book_title,
    ifnull(sum(
        if(date_format(borrow_date, '%Y%m') = '202302', 1, 0)
    ),0) feb_2023_borrows,
    ifnull(sum(
        if(date_format(borrow_date, '%Y%m') = '202402', 1, 0)
    ),0) feb_2024_borrows,
    ifnull(sum(
        if(date_format(borrow_date, '%Y%m') = '202401', 1, 0)
    ),0) jan_2024_borrows,
     ifnull(-sum(
        if(date_format(borrow_date, '%Y%m') = '202302', 1, 0)
    ) +sum(
        if(date_format(borrow_date, '%Y%m') = '202402', 1, 0)
    ),0) yoy_delta,
     ifnull(sum(
        if(date_format(borrow_date, '%Y%m') = '202402', 1, 0)
    ) - sum(
        if(date_format(borrow_date, '%Y%m') = '202401', 1, 0)
    ) ,0)mom_delta,
    ifnull(round(
        sum(
            if(
                branch_name = '北馆'
                and year(borrow_date) = 2023,
                1,
                0
            )
        ) * 100 / sum(if(year(borrow_date) = 2023, 1, 0)),
        2
    ),0) north_pct_2023,
   ifnull( round(
        sum(
            if(
                branch_name = '南馆'
                and year(borrow_date) = 2023,
                1,
                0
            )
        ) * 100 / sum(if(year(borrow_date) = 2023, 1, 0)),
        2
    ),0) south_pct_2023,
    ifnull(round(
        sum(
            if(
                branch_name = '东馆'
                and year(borrow_date) = 2023,
                1,
                0
            )
        ) * 100 / sum(if(year(borrow_date) = 2023, 1, 0)),
        2
    ),0) east_pct_2023
from
    Books bk
    left join BorrowRecords br using (book_id)
    left join Branches bc using (branch_id)
group by
    1,
    2
order by
    1,
    2

全部评论

相关推荐

哎呦额滴天:怎么可以差到这种程度?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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