-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhomework_10.txt
83 lines (74 loc) · 1.86 KB
/
homework_10.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
CREATE TABLE Authors (
author_Id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
country TEXT,
year_of_birth INTEGER,
phone_number INTEGER,
email_address TEXT,
CHECK (phone_number > 0
AND year_of_birth > 0)
);
CREATE TABLE Books (
book_Id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author INTEGER,
publisher TEXT,
description TEXT NOT NULL,
edition INTEGER,
"year" INTEGER NOT NULL,
quantity INTEGER NOT NULL,
price REAL,
FOREIGN KEY(author) REFERENCES Authors(author_Id),
CHECK (edition > 0
AND "year" > 0
AND quantity > 0
AND price > 0),
CHECK (publisher = 'Penguin House'
OR publisher = 'HarperCollins'
OR publisher = 'MacMillan'
OR publisher = 'Scholastic')
-- CHECK (WHEN publisher = 'MacMillan' THEN "year" > 2003)
);
--2
--a.
SELECT b.title, a.name
FROM Books b
INNER JOIN Authors a ON a.author_Id = b.author
ORDER BY a.name
--b.
SELECT b.title, b.price
FROM Books b
INNER JOIN Authors a ON b.author = a.author_Id
WHERE (2020 - a.year_of_birth) > 30
ORDER BY a.year_of_birth
--c.
SELECT MAX(b.price), a.name
FROM Books b
INNER JOIN Authors a ON b.author = a.author_Id
--d.
SELECT a.country, AVG(b.price) AS average_book_price
FROM Authors a
INNER JOIN Books b ON a.author_Id = b.author
GROUP BY a.country
ORDER BY average_book_price
--e.
SELECT a.country, COUNT(b."year") AS publication
FROM Authors a
INNER JOIN Books b ON a.author_Id = b.author
WHERE a.country = "United States
GROUP BY b."year"
--f.
SELECT b.title, a.name
FROM Books b
INNER JOIN Authors a ON b.author = a.author_Id
WHERE 30 > (2020 - a.year_of_birth)
AND b.quantity > 0
--g.
SELECT MAX(b.price), b.edition as max_price_edition
FROM Books b
GROUP BY max_price_edition
--h.
SELECT COUNT(b.author), b.title as count_author
FROM Books b
INNER JOIN Authors a ON b.author = a.author_Id
GROUP BY b.author