lab2/lab2.sql

42 lines
2.2 KiB
MySQL
Raw Normal View History

2022-10-25 09:23:38 +00:00
USE Northwind_2020;
-- 1. Spośród klientów z Londynu wybierz tych których nazwa zaczyna na się na A, B lub C
SELECT * FROM (SELECT * FROM Customers WHERE City='London') MIESZKANCY_LONDYNU WHERE CompanyName LIKE '[a-c]%'
-- 2. Wyświetl informacje o zamówieniach z czerwca 1996 obsługiwanych na wschodzie, których wartość przekroczyła średnią wartość wszystkich zamówień
SELECT Orders.OrderID, Quantity*UnitPrice AS WARTOSC FROM Orders
INNER JOIN Employees ON Orders.EmployeeID=Employees.EmployeeID
INNER JOIN EmployeeTerritories ON EmployeeTerritories.EmployeeID=Employees.EmployeeID
INNER JOIN Territories ON Territories.TerritoryID=EmployeeTerritories.TerritoryID
INNER JOIN Region ON Region.RegionID=Territories.RegionID
INNER JOIN [Order Details] ON [Order Details].OrderID=Orders.OrderID
WHERE RegionDescription='EASTERN' AND OrderDate LIKE '%1996%'
AND [Order Details].Quantity*[Order Details].UnitPrice > (SELECT avg(Quantity*UnitPrice) FROM [Order Details])
-- 3. Wypisz produkt, który ma najniższą cenę
SELECT * FROM Products WHERE UnitPrice=(SELECT min(UnitPrice) FROM Products)
-- 4. Znaleźć produkty o cenach najniższych w swoich kategoriach // korelacja
SELECT ProductName, CategoryID, UnitPrice FROM Products AS p1 WHERE UnitPrice IN (SELECT min(UnitPrice) FROM Products AS p2 WHERE p1.CategoryID=p2.CategoryID)
-- 5. Podaj ilu pracowników mieszka w takich samych miastach
SELECT count(*) FROM Employees AS p1 WHERE City IN (SELECT City FROM Employees AS p2 WHERE p1.City=p2.City AND p1.EmployeeID!=p2.EmployeeID)
-- 6. Wskazać produkt, którego nikt inny nie zamawiał
SELECT ProductID FROM Products
EXCEPT
SELECT DISTINCT ProductID from [Order Details]
-- 7. Wypisz klientów, którzy nie zamawiali
SELECT CustomerID FROM Customers
EXCEPT
SELECT DISTINCT CustomerID from Orders
SELECT CompanyName, OrderID FROM Customers
LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID WHERE OrderID IS NULL
-- 8. Którzy klienci najczęściej zamawiali
SELECT CustomerID, count(CustomerID) AS Ile FROM Orders GROUP BY CustomerID ORDER BY Ile DESC
-- 9. Napisz kwerendę, która zwróci listę miast, w których mieszkają zarówno klienci, jak i pracownicy