Cần gợi ý bài tập Đại số quan hệ trong môn Cơ sở dữ liệu
phác họa từ từ thôi
danh sách tác giả -> phải select from bảng tacgia
giả sử chúng ta có bảng tmp(matg, soluong)
như vậy thì đáp án sẽ là
select tacgia.*, tmp.soluong
from tacgia
left join (...) tmp on tmp.matg = tacgia.matg
order by tmp.soluong
giờ đi tìm tmp để gắn vô (…) trong câu query ở trên
nhìn vô thì thấy có bảng vietboi
như vậy có thể đếm được rồi
select matg, count(masach) as soluong
from vietboi
group by matg
vậy gắn câu sql 2 vào chỗ … trong câu sql 1 là xong
có thể gắn limit/top gì đó nếu có yêu cầu
hướng dẫn này đếm theo đầu sách
còn nâng cao hơn, mỗi đầu sách có nhiều phiên bản, đếm theo phiên bản, bạn có thể tự phát triển thêm theo hướng dẫn, phân tích ở trên
em làm bằng ngôn nguex đại số quan hệ ấy ạ
\begin{aligned}
\text{TACGIA\_SACH} &\longleftarrow \rho_{(\text{MaTG, SoSach})}(\ _{\text{MaTG}}\mathcal{J}_{\text{COUNT MaSach}} (\text{VIETBOI})) \\
\text{MIN\_SACH}(\text{SoLuong}) &\longleftarrow \mathcal{J}_{\text{MIN SoSach}}(\text{TACGIA\_SACH}) \\
\text{TACGIA\_SACH} &\longleftarrow \pi_{\text{MaTG,SoSach}}(\text{TACGIA\_SACH} \Join_{\text{SoSach}=\text{SoLuong}} \text{MIN\_SACH}) \\
\text{KET\_QUA} &\longleftarrow \text{TACGIA} * \text{TACGIA\_SACH}
\end{aligned}
Viết thêm trường hợp tác giả không viết quyển nào nha. Chứ Relational Algebra nó cùi bắp quá, cú pháp xử lý trường hợp NULL không có nhiều.
4 Likes