为优化馆藏管理与读者服务,图书馆每月需复盘各图书的借阅表现。请基于借阅记录与分馆信息,统计每本书在 2024 年 2 月与 2024 年 1 月的借阅量,并与 2023 年 2 月对比;同时给出 2023 年各分区(华北、华东、华南)的借阅占比,用于评估区域结构变化。数据来自图书表、借阅表与分馆表。 【原始表】 Books(图书)表 book_id INT 主键:图书唯一标识 book_title VARCHAR:图书标题 category VARCHAR:图书所属类别 BorrowRecords(借阅记录)表 record_id INT 主键:借阅流水标识 book_id INT 外键 → Books.book_id branch_id INT 外键 → Branches.branch_id borrow_date DATE:借阅日期 member_id INT:借阅者ID(本题不直接使用) Branches(分馆)表 branch_id INT 主键 branch_name VARCHAR:分馆名称 region ENUM('华北','华东','华南'):分区 输出每本书的借阅概览,结果需包含如下字段,并按 book_id 升序排列(若并列再按 book_title 升序): book_id:图书ID book_title:图书名称 feb_2023_borrows:2023 年 2 月借阅量 feb_2024_borrows:2024 年 2 月借阅量 jan_2024_borrows:2024 年 1 月借阅量 yoy_delta:同比增量 = feb_2024_borrows - feb_2023_borrows mom_delta:环比增量 = feb_2024_borrows - jan_2024_borrows north_pct_2023:2023 年华北借阅占比(保留两位小数) south_pct_2023:2023 年华南借阅占比(保留两位小数) east_pct_2023:2023 年华东借阅占比(保留两位小数) 【示例输入】 Books Branches BorrowRecords 【示例输出】
示例1

输入

DROP TABLE IF EXISTS BorrowRecords;
DROP TABLE IF EXISTS Branches;
DROP TABLE IF EXISTS Books;

CREATE TABLE Books (
  book_id    INT PRIMARY KEY,
  book_title VARCHAR(100),
  category   VARCHAR(50)
);

CREATE TABLE Branches (
  branch_id   INT PRIMARY KEY,
  branch_name VARCHAR(50),
  region      ENUM('华北','华东','华南')
);

CREATE TABLE BorrowRecords (
  record_id   INT PRIMARY KEY,
  book_id     INT,
  branch_id   INT,
  borrow_date DATE,
  member_id   INT
);

INSERT INTO Books VALUES
(1,'Database Systems','IT'),
(2,'Linear Algebra','Math');

INSERT INTO Branches VALUES
(1,'北馆','华北'),
(2,'东馆','华东'),
(3,'南馆','华南');

INSERT INTO BorrowRecords VALUES
(101,1,1,'2023-02-10',11),
(102,1,2,'2024-02-12',12),
(103,1,3,'2024-01-20',13),
(104,2,1,'2023-02-15',21),
(105,2,2,'2023-07-01',22),
(106,2,3,'2024-02-03',23);

输出

book_id|book_title|feb_2023_borrows|feb_2024_borrows|jan_2024_borrows|yoy_delta|mom_delta|north_pct_2023|south_pct_2023|east_pct_2023
1|Database Systems|1|1|1|0|0|100.00|0.00|0.00
2|Linear Algebra|1|1|0|0|1|50.00|0.00|50.00

备注:
约束与说明:必须连接并使用三张表。必须使用高级查询(含:CTE子查询、条件聚合、CASECOALESCE,至少两类)。若某月份无借阅,按 0 计算;2023 年占比 = 2023 年对应分区借阅量 2023 年该书总借阅量 × 100,保留两位小数,若分母为 0 则各分区占比均为 0.00。
加载中...