-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJOINS.sql
More file actions
63 lines (58 loc) · 2.54 KB
/
Copy pathJOINS.sql
File metadata and controls
63 lines (58 loc) · 2.54 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
--(1)
--SELECT SUM(UnitPrice)
--FROM sales JOIN sales_items ON sales.salesid = sales_items.SalesId
--WHERE ShipCountry = 'USA' AND (SalesDate LIKE '%2012-01%' OR SalesDate LIKE '%2012-02%' OR SalesDate LIKE '%2012-03%')
--
--SELECT SUM(UnitPrice)
--FROM sales_items
--WHERE SalesId IN (SELECT SalesId FROM sales WHERE ShipCountry = 'USA' AND (SalesDate LIKE '%2012-01%' OR SalesDate LIKE '%2012-02%' OR SalesDate LIKE '%2012-03%'))
--
--(2)
--SELECT customers.FirstName
--FROM customers LEFT JOIN employees
--ON customers.FirstName = employees.FirstName
--WHERE employees.FirstName IS NULL
--GROUP BY customers.FirstName
--
--SELECT customers.FirstName
--FROM customers
--WHERE customers.FirstName NOT IN (SELECT FirstName FROM employees)
--GROUP BY customers.FirstName
--
--SELECT FirstName FROM customers
--EXCEPT
--SELECT FirstName FROM employees
--
--(3)
--Эта команда делает сначала LEFT JOIN, а потом выбирает из получившейся таблицы только те строки, где SalesID = 4
--SELECT * FROM sales_items si LEFT JOIN sales s ON si.SalesId = s.SalesId WHERE si.SalesId = 4
--Эта команда делает LEFT JOIN, заполняя NULL все присоединившиеся строки, если в них SalesID != 4
--SELECT * FROM sales_items si LEFT JOIN sales s ON si.SalesId = s.SalesId AND si.SalesId = 4
--
--(4)
--SELECT COUNT(TRACKID), Title
--FROM tracks JOIN albums
--ON tracks.AlbumId = albums.AlbumId
--GROUP BY tracks.AlbumId
--
--SELECT COUNT(TRACKID),
--(SELECT Title FROM albums
--WHERE tracks.AlbumId = albums.AlbumId)
--FROM tracks
--GROUP BY tracks.AlbumId
--
--(5)
--SELECT LastName, FirstName FROM customers JOIN sales ON customers.CustomerId = sales.CustomerId WHERE customers.Country = 'Germany' AND sales.ShipCity = 'Berlin'
--GROUP BY LastName, FirstName
--(6)
--SELECT LastName
--FROM customers JOIN sales JOIN sales_items ON customers.CustomerId = sales.CustomerId AND sales_items.SalesId = sales.SalesId
--GROUP BY LastName
--HAVING SUM(sales_items.Quantity) > 30
--SELECT (SELECT (SELECT LastName FROM customers WHERE sales.CustomerId = customers.CustomerId)FROM sales WHERE sales.SalesId = sales_items.SalesId) AS t FROM sales_items GROUP BY t HAVING SUM(Quantity) > 30
--(7)
--SELECT genres.Name, AVG(unitPrice) FROM genres JOIN tracks ON tracks.GenreId = genres.GenreId
--GROUP BY genres.Name
--(8)
--
--SELECT (SELECT genres.Name FROM genres WHERE tracks.GenreId = genres.GenreId) FROM tracks GROUP BY tracks.GenreId HAVING AVG(tracks.unitPrice) > 1