Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1325,3 +1325,63 @@ WHERE email_verified_at IS NOT NULL;
```

</details>

93. Какой средний возраст клиентов, купивших Smartwatch (использовать наименование товара product.name) в 2024 году? [(сайт)](https://sql-academy.org/ru/trainer/tasks/93)

<details>
<summary>Решение</summary>

```mysql
SELECT AVG(sub.age) AS average_age
FROM (
SELECT DISTINCT c.customer_key,
c.age
FROM Customer AS c
JOIN Purchase AS pu ON pu.customer_key = c.customer_key
JOIN Product AS p ON p.product_key = pu.product_key
WHERE YEAR(pu.date) = 2024
AND p.name = 'Smartwatch'
) AS sub;
```

</details>

94. Вывести имена покупателей, каждый из которых приобрёл Laptop и Monitor (использовать наименование товара product.name) в марте 2024 года? [(сайт)](https://sql-academy.org/ru/trainer/tasks/94)

<details>
<summary>Решение</summary>

```mysql
SELECT c.name
FROM Customer AS c
JOIN Purchase AS pu ON pu.customer_key = c.customer_key
JOIN Product AS p ON p.product_key = pu.product_key
WHERE YEAR(pu.date) = 2024
AND MONTH(pu.date) = 3
AND p.name IN ('Laptop', 'Monitor')
GROUP BY c.customer_key,
c.name
HAVING COUNT(DISTINCT p.name) = 2;
```

</details>

97. Посчитать количество работающих складов на текущую дату по каждому городу. Вывести только те города, у которых количество складов более 80. Данные на выходе - город, количество складов. [(сайт)](https://sql-academy.org/ru/trainer/tasks/97)

<details>
<summary>Решение</summary>

```mysql
SELECT city,
COUNT(*) AS warehouse_count
FROM Warehouses
WHERE (
date_close IS NULL
OR date_close > CURRENT_DATE()
)
GROUP BY city
HAVING warehouse_count > 80
ORDER BY warehouse_count DESC;
```

</details>
60 changes: 60 additions & 0 deletions english.md
Original file line number Diff line number Diff line change
Expand Up @@ -1318,3 +1318,63 @@ WHERE email_verified_at IS NOT NULL;
```

</details>

93. What is the average age of customers who bought a Smartwatch (use product.name) in 2024? [(сайт)](https://sql-academy.org/ru/trainer/tasks/93)

<details>
<summary>Решение</summary>

```mysql
SELECT AVG(sub.age) AS average_age
FROM (
SELECT DISTINCT c.customer_key,
c.age
FROM Customer AS c
JOIN Purchase AS pu ON pu.customer_key = c.customer_key
JOIN Product AS p ON p.product_key = pu.product_key
WHERE YEAR(pu.date) = 2024
AND p.name = 'Smartwatch'
) AS sub;
```

</details>

94. Output the names of customers who each purchased a Laptop and Monitor (use product.name) in March 2024? [(сайт)](https://sql-academy.org/ru/trainer/tasks/94)

<details>
<summary>Решение</summary>

```mysql
SELECT c.name
FROM Customer AS c
JOIN Purchase AS pu ON pu.customer_key = c.customer_key
JOIN Product AS p ON p.product_key = pu.product_key
WHERE YEAR(pu.date) = 2024
AND MONTH(pu.date) = 3
AND p.name IN ('Laptop', 'Monitor')
GROUP BY c.customer_key,
c.name
HAVING COUNT(DISTINCT p.name) = 2;
```

</details>

97. Calculate the number of working warehouses as of the current date for each city. Output only those cities that have more than 80 warehouses. Output data - city, number of warehouses. [(сайт)](https://sql-academy.org/ru/trainer/tasks/97)

<details>
<summary>Решение</summary>

```mysql
SELECT city,
COUNT(*) AS warehouse_count
FROM Warehouses
WHERE (
date_close IS NULL
OR date_close > CURRENT_DATE()
)
GROUP BY city
HAVING warehouse_count > 80
ORDER BY warehouse_count DESC;
```

</details>