-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path05exercises.sql
More file actions
130 lines (109 loc) · 3 KB
/
05exercises.sql
File metadata and controls
130 lines (109 loc) · 3 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
How many natiionalities are thereHo?
SELECT DISTINCT nationality from authors WHERE nationality IS NOT NULL;
SELECT nationality FROM authors WHERE nationality IS NOT NULL GROUP BY nationality;
How many writers are there by nationality?
SELECT nationality, count(author_id) as number_authors
FROM authors
WHERE nationality IS NOT NULL
GROUP BY nationality
ORDER BY number_authors DESC, nationality;
SELECT nationality, count(author_id) as number_authors
FROM authors
WHERE nationality IS NOT NULL
AND nationality NOT IN('RUS','AUT')
GROUP BY nationality
ORDER BY number_authors DESC, nationality;
How many books are there by nationality?
SELECT a.nationality, COUNT(b.book_id) as number_books
FROM authors as a
JOIN books as b
on a.author_id = b.author_id
WHERE nationality IS NOT NULL
GROUP BY nationality
ORDER BY number_books DESC, nationality
;
What is the average and the standard deviation?
UPDATE books
SET price = FLOOR(RAND()*(35-10+1))+10
WHERE book_id BETWEEN 13 AND 198
;
SELECT AVG(price) from books;
SELECT AVG(price), STDDEV(price) from books;
The same but by nationality
SELECT a.nationality,COUNT(book_id) as books, AVG(b.price) as avg, STDDEV(b.price) as stddev
FROM books as b
JOIN authors as a
on b.author_id = a.author_id
GROUP BY nationality
ORDER BY books desc
;
Which is the maximum and minumum price of a book?
SELECT price
FROM books
ORDER BY price ASC
LIMIT 1;
SELECT price
FROM books
ORDER BY price DESC
LIMIT 1;
SELECT nationality, MAX(price),MIN(price)
FROM books as b
JOIN authors as a
ON a.author_id = b.author_id
GROUP BY nationality
ORDER BY nationality ASC
;
Loans report
random date
UPDATE transactions
SET created_at = (select date_format(
from_unixtime(
rand() *
(unix_timestamp('2000-01-30 16:00:00') - unix_timestamp('2019-11-13 23:00:00')) +
unix_timestamp('2019-11-13 23:00:00')
), '%Y-%m-%d %H:%i:%s') as datum_roden);
Quien rento, que libro y cuando
SELECT c.name as client, b.title,a.name as author, a.nationality, t.type, t.created_at
FROM transactions as t
LEFT JOIN clients as c
ON c.client_id = t.client_id
LEFT JOIN books as b
ON t.book_id = b.book_id
LEFT JOIN authors as a
ON b.author_id = a.author_id
ORDER BY created_at DESC
;
/**
*
**/
SELECT c.name as client,
b.title,
CONCAT(a.name, "(",a.nationality,")") as author,
t.type,
t.created_at
FROM transactions as t
LEFT JOIN clients as c
ON c.client_id = t.client_id
LEFT JOIN books as b
ON t.book_id = b.book_id
LEFT JOIN authors as a
ON b.author_id = a.author_id
ORDER BY created_at DESC
;
________
CUANTOS DIAS HAN PASADO
SELECT c.name as client,
b.title,
CONCAT(a.name, "(",a.nationality,")") as author,
t.type,
t.created_at,
TO_DAYS(NOW()) - TO_DAYS(t.created_at) as ago
FROM transactions as t
LEFT JOIN clients as c
ON c.client_id = t.client_id
LEFT JOIN books as b
ON t.book_id = b.book_id
LEFT JOIN authors as a
ON b.author_id = a.author_id
ORDER BY created_at DESC
;