This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
use Lucky_Shrub;
|
||||
|
||||
###############################################
|
||||
############### Завдання #################
|
||||
###############################################
|
||||
|
||||
################################################
|
||||
############### Завдання 1 #################
|
||||
Для того, щоб дізнатися, скільки замовлень було розміщено у 2022 році клієнтами з ідентифікаторами
|
||||
Cl1, Cl2 і Cl3 було створено наступний запит:
|
||||
|
||||
SELECT CONCAT(
|
||||
"Cl1: ", COUNT(OrderID), " orders"
|
||||
) AS "Total number of orders"
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl1"
|
||||
UNION
|
||||
SELECT CONCAT(
|
||||
"Cl2: ", COUNT(OrderID), " orders"
|
||||
)
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl2"
|
||||
UNION
|
||||
SELECT CONCAT(
|
||||
"Cl3: ", COUNT(OrderID), " orders"
|
||||
)
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl3";
|
||||
|
||||
--------------------------------------
|
||||
1. Оптимізуйте даний запит із використанням загальних табличних виразів (CTE)
|
||||
|
||||
WITH
|
||||
CTE1 AS (
|
||||
SELECT CONCAT(
|
||||
"Cl1: ", COUNT(OrderID), " orders"
|
||||
) AS "Total number of orders"
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl1"
|
||||
),
|
||||
CTE2 AS (
|
||||
SELECT CONCAT(
|
||||
"Cl2: ", COUNT(OrderID), " orders"
|
||||
)
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl2"
|
||||
),
|
||||
CTE3 AS (
|
||||
SELECT CONCAT(
|
||||
"Cl3: ", COUNT(OrderID), " orders"
|
||||
)
|
||||
FROM Orders
|
||||
WHERE
|
||||
YEAR(Date) = 2022
|
||||
AND ClientID = "Cl3"
|
||||
)
|
||||
SELECT *
|
||||
FROM CTE1
|
||||
UNION
|
||||
SELECT *
|
||||
FROM CTE2
|
||||
UNION
|
||||
SELECT *
|
||||
FROM CTE3;
|
||||
|
||||
################################################
|
||||
############### Завдання 2 #################
|
||||
--------------------------------------
|
||||
1. Створіть підготовлений запит з назвою GetOrderDetail.
|
||||
Підготовлений запит має приймати два вхідні аргументи: значення ClientID і значення року.
|
||||
Вибірка має повернути ID замовлення, кількість, вартість замовлення та дату замовлення з таблиці Orders.
|
||||
|
||||
select * from Orders;
|
||||
|
||||
prepare GetOrderDetail
|
||||
from 'SELECT OrderID, Quantity, Cost, Date FROM Orders WHERE ClientID = ? AND YEAR(Date) = ?';
|
||||
|
||||
set @ClientID = "Cl1";
|
||||
|
||||
set @Year = "2022";
|
||||
|
||||
execute GetOrderDetail using @ClientID, @Year;
|
||||
|
||||
--------------------------------------
|
||||
2. Здійсніть вибірку даних із використанням піготованого запиту з такими значеннми
|
||||
змінних ClientID (Cl1) і 2020 рік.
|
||||
|
||||
CALL GetOrderDetail ('Cl1', 2020);
|
||||
|
||||
set @ClientID = "Cl1";
|
||||
|
||||
set @Year = "2020";
|
||||
|
||||
execute GetOrderDetail using @ClientID, @Year;
|
||||
|
||||
################################################
|
||||
############### Завдання 3 #################
|
||||
|
||||
У таблиці Activity бази даних Lucky_Shrub здійснюється реєстрація інформацію про кожну угоду
|
||||
у стовпці Properties у форматі JSON.
|
||||
Інформацію можна переглянути з допомогою запиту:
|
||||
|
||||
SELECT * FROM Activity;
|
||||
--------------------------------------
|
||||
1. Вам потрібно вивести ID продукту, назву, ціну покупки та ціну продажу продукту,
|
||||
для яких атрибут Orders у таблиці Activity набуває значення "True".
|
||||
--Порада: для отримання доступ до значень поля Properties без подвійних лапок із типу даних
|
||||
JSON слід скористатися синксисом:
|
||||
->>'$.Propertys_name'
|
||||
/*замість*/ ->'$.Propertys_name'
|
||||
|
||||
select * from Products;
|
||||
|
||||
select p.ProductID, p.ProductName, p.BuyPrice, p.SellPrice
|
||||
FROM Products p
|
||||
JOIN Activity a ON p.ProductID = a.Properties ->> '$.ProductID'
|
||||
WHERE
|
||||
a.Properties ->> '$.Order' = 'True';
|
||||
Reference in New Issue
Block a user