-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSQL.sql
More file actions
43 lines (39 loc) · 1.23 KB
/
Copy pathSQL.sql
File metadata and controls
43 lines (39 loc) · 1.23 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
Схема таблицы:
company phone
------- -------
companyId (PK) phoneId (PK)
companyName phoneModel
companyCountry companyId (FK -> company.companyId)
price
Решение 1:
SELECT DISTINCT company.companyName as CompanyName, COUNT(phoneModel) as ModelNumber, SUM(price) as TotalPrice
FROM phone
RIGHT OUTER JOIN company
ON phone.companyId=company.companyId
GROUP BY company.companyName;
Решение 2:
a)
SELECT TOP 1 company.companyName as CompanyName, AVG(phone.price) as AVGprice
FROM phone
RIGHT OUTER JOIN company
ON phone.companyId=company.companyId
GROUP BY company.companyName
ORDER BY AVGprice DESC;
b)
SELECT DISTINCT company.companyName as CompanyName, COUNT(phoneModel) as ModelNumber
FROM phone
RIGHT OUTER JOIN company
ON phone.companyId=company.companyId
WHERE company.companyCountry='China'
GROUP BY CompanyName;
c)
WITH allProducts AS
(SELECT phone.phoneModel as Model, company.companyName as CompanyName, phone.price as Price,
ROW_NUMBER() OVER (PARTITION BY CompanyName ORDER BY Price DESC) ROW_NUM
FROM phone
RIGHT OUTER JOIN company
ON phone.companyId = company.companyId)
SELECT Model, CompanyName, Price
FROM allProducts
WHERE ROW_NUM = 1
ORDER BY Price DESC;