-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChapter_12.sql
310 lines (309 loc) · 7.55 KB
/
Chapter_12.sql
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
/**
* @Author: ADITYA KUMAR SINGH <the__martian>
* @Email: cr7.aditya.cs@gmail.com
* @Filename: Chapter_12.sql
* @Last modified by: the__martian
*/
-----------------------------------------------------------------
P R A C T I C E P R O B L E M
-----------------------------------------------------------------
use SalesOrdersExample;
-----------------------------------------------------------------
select
count(*) as "Number of Customers from California"
from
Customers C
where
C.CustState = 'CA';
-----------------------------------------------------------------
select distinct
P.ProductNumber, P.ProductName
from
Products P
inner join
Order_Details OD
on OD.ProductNumber = P.ProductNumber
where
OD.QuotedPrice >=
(
select
avg(p.RetailPrice)
from
Products p
);
-----------------------------------------------------------------
use EntertainmentAgencyExample;
-----------------------------------------------------------------
select
E.EngagementNumber, E.ContractPrice
from
Engagements E
where
E.StartDate <=
(
select
min(e.StartDate)
from
Engagements e
);
-----------------------------------------------------------------
select
concat('$', sum(e.ContractPrice)) as "Total Value"
from
Engagements e
where
e.StartDate between '2017-10-01' and '2017-10-31';
-----------------------------------------------------------------
use SchoolSchedulingExample;
-----------------------------------------------------------------
select
max(Salary) as "Maximum Salary"
from
Staff;
-----------------------------------------------------------------
select
sum(Salary) "Total Salary"
from
Staff
where
StfState = "CA";
-----------------------------------------------------------------
use BowlingLeagueExample;
-----------------------------------------------------------------
select
count(TourneyID) as "Number of Tournaments"
from
Tournaments
where
TourneyLocation = "Red Rooster Lanes";
-----------------------------------------------------------------
select
B.BowlerLastName as "Last name", B.BowlerFirstName as
"First Name"
from
Bowlers B
where
(
select
avg(BS.RawScore)
from
Bowler_Scores BS
where
BS.BowlerID = B.BowlerID
) >=
(
select
avg(bs.RawScore)
from
Bowler_Scores bs
)
order by
1, 2;
-----------------------------------------------------------------
use RecipesExample;
-----------------------------------------------------------------
select
count(*) " Number of recipes containing Beef"
from
Recipes R
where
R.RecipeID in
(
select
RI.RecipeID
from
Recipe_Ingredients RI
inner join
Ingredients I
where
RI.IngredientID = I.IngredientID
and
I.IngredientName like "%Beef%"
);
-----------------------------------------------------------------
select
count(*)
from
Ingredients I
where
I.MeasureAmountID in
(
select
M.MeasureAmountID
from
Measurements M
where
M.MeasurementDescription = 'Cup'
);
-----------------------------------------------------------------
P R O B L E M S
-----------------------------------------------------------------
use SalesOrdersExample;
-----------------------------------------------------------------
select
avg(P.RetailPrice) as "average retail price"
from
Products P
where
P.ProductName like "%Mountain Bike%";
-----------------------------------------------------------------
select
max(O.OrderDate) as "Recent orders"
from
Orders O;
-----------------------------------------------------------------
select
sum(OD.QuotedPrice*OD.QuantityOrdered) as "Total amount"
from
Order_Details OD
where
OD.OrderNumber = 8;
-----------------------------------------------------------------
use EntertainmentAgencyExample;
-----------------------------------------------------------------
select
avg(A.Salary) as "Avg salary"
from
Agents A;
-----------------------------------------------------------------
select
E.EngagementNumber
from
Engagements E
where
E.ContractPrice >=
(
select
avg(e.ContractPrice)
from
Engagements e
);
-----------------------------------------------------------------
select
count(*)
from
Entertainers E
where
E.EntCity = 'Bellevue';
-----------------------------------------------------------------
select
E.EngagementNumber
from
Engagements E
where
E.StartDate =
(
select
min(e.StartDate)
from
Engagements e
where
e.StartDate between cast('2017-10-01' as date)
and cast('2017-10-31' as date)
);
-----------------------------------------------------------------
use SchoolSchedulingExample;
-----------------------------------------------------------------
select
avg(C.Duration) as "Average class duration"
from
Classes C;
-----------------------------------------------------------------
select
S.StfLastName as "Last Name", S.StfFirstName as "First Name",
S.DateHired as "Hired Date"
from
Staff S
where
S.DateHired =
(
select
min(s.DateHired)
from
Staff s
);
-----------------------------------------------------------------
select
count(*) as "Number of classes"
from
Classes C
where
C.ClassRoomID = 3346;
-----------------------------------------------------------------
use BowlingLeagueExample;
-----------------------------------------------------------------
???
-----------------------------------------------------------------
select
T.TourneyLocation
from
Tournaments T
where
T.TourneyDate =
(
select
min(t.TourneyDate)
from
Tournaments t
);
-----------------------------------------------------------------
select
max(T.TourneyDate)
from
Tournaments T;
-----------------------------------------------------------------
use RecipesExample;
-----------------------------------------------------------------
select
R.RecipeTitle
from
Recipes R
where
R.RecipeID =
(
select
RI.RecipeID
from
Recipe_Ingredients RI
inner join
Ingredients I
on I.IngredientID = RI.IngredientID
where
I.IngredientName like "%Garlic%"
and
RI.Amount >=
(
select
max(ri.Amount)
from
Recipe_Ingredients ri
inner join
Ingredients i
on i.IngredientID = ri.IngredientID
where
i.IngredientName like "%Garlic%"
)
);
-----------------------------------------------------------------
select
count(*)
from
Recipes R
inner join
Recipe_Classes RC
on R.RecipeClassID = RC.RecipeClassID
where
RC.RecipeClassDescription = "Main course";
-----------------------------------------------------------------
select
sum(RI.Amount)
from
Recipe_Ingredients RI
inner join
Ingredients I
on I.IngredientID = RI.IngredientID
where
I.IngredientName like "%Salt%";
-----------------------------------------------------------------
T H E E N D
-----------------------------------------------------------------