You are on page 1of 2

HƯỚNG DẪN BÀI TH3

--c15
--c18
select NT, COUNT(*) SOTP
from sach
GROUP BY NT
ORDER BY NT;
--C16
select S.NT, TUA, COUNT(*) SOTP
from sach S JOIN TACPHAM T ON S.NT=T.NT
GROUP BY S.NT, TUA HAVING COUNT(*)>=2
ORDER BY S.NT;
--C17
SELECT TACGIA, COUNT(*) SOTP
FROM TACPHAM
GROUP BY TACGIA
ORDER BY TACGIA;
--C23
CREATE TABLE C23 AS
SELECT TACGIA, COUNT(*) SOTP
FROM TACPHAM
GROUP BY TACGIA HAVING COUNT(*)>1;
SELECT COUNT(*) FROM C23;
DROP TABLE C23;
-- CACH #
SELECT COUNT(*)
FROM (SELECT TACGIA, COUNT(*) SOTP
FROM TACPHAM
GROUP BY TACGIA HAVING COUNT(*)>1);

-- C19
SELECT ND,EXTRACT(YEAR FROM NGAYMUON) NAM, COUNT(*) SOLAN
FROM MUON
GROUP BY ND,EXTRACT(YEAR FROM NGAYMUON)
ORDER BY ND,EXTRACT(YEAR FROM NGAYMUON) ;
--C21
CREATE TABLE C21 AS
select S.NT, TUA, COUNT(*) SOTP
from sach S JOIN TACPHAM T ON S.NT=T.NT
GROUP BY S.NT, TUA;
SELECT TUA
FROM C21
WHERE SOTP = (SELECT MAX(SOTP)FROM C21);
SELECT TUA
FROM C21
WHERE SOTP >= all (SELECT SOTp FROM C21);

--C24
CREATE TABLE C24 AS
SELECT TUA, COUNT(DISTINCT ND) SODG
FROM TACPHAM T JOIN SACH S ON T.NT=S.NT
JOIN MUON M ON S.NS=M.NS
GROUP BY T.NT, TUA
ORDER BY TUA ;
SELECT TUA FROM C24 WHERE SODG=(SELECT MAX(SODG) FROM C24);
DROP TABLE C24;
-- C28
SELECT TUA
FROM TACPHAM T JOIN SACH S ON T.NT=S.NT
LEFT JOIN MUON M ON S.NS=M.NS
WHERE NGAYMUON IS NULL
ORDER BY S.NT;

SELECT NT
FROM SACH
WHERE NS not in
(SELECT NS FROM MUON);
SELECT NT FROM SACH
WHERE NS IN(
SELECT NS FROM SACH
MINUS
SELECT NS FROM MUON);
-- C29
SELECT TUA
FROM TACPHAM
WHERE NT NOT IN (
SELECT NT
FROM SACH S LEFT JOIN MUON M ON S.NS=M.NS
WHERE NGAYMUON IS NULL
)

You might also like