TGViewer
SQL и Анализ данных SQL и Анализ данных @databases_tg · 12.5K subscribers
Post #1007 3.36K
🧩 SQL-задача с подвохом: "Сотрудники без продаж в 2024 году"

У тебя есть две таблицы:


CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR
);

CREATE TABLE sales (
id SERIAL PRIMARY KEY,
employee_id INT,
sale_amount NUMERIC,
sale_date DATE
);


📌 Задание:
Найди всех сотрудников, у которых не было ни одной продажи в 2024 году.


💣 **Подвох:**

Многие делают LEFT JOIN sales ON ... WHERE sale.id IS NULL, но это покажет только тех, у кого вообще не было продаж.
А нужно — у кого не было продаж именно в 2024 году, даже если они были в 2023 или 2022.

💡 **Подсказки:**

• Отфильтруй sales по дате (`2024-01-01` до `2024-12-31`)
• Используй LEFT JOIN или NOT EXISTS
• Ищи NULL только после фильтра

---

✅ Решение с `LEFT JOIN`:

```sql
SELECT
e.name
FROM employees e
LEFT JOIN (
SELECT * FROM sales
WHERE sale_date >= '2024-01-01' AND sale_date < '2025-01-01'
) s ON
e.id = s.employee_id
WHERE
s.id IS NULL;
```

---

🔄 **Альтернатива с `NOT EXISTS`:**

```sql
SELECT name
FROM employees e
WHERE NOT EXISTS (
SELECT 1
FROM sales s
WHERE s.employee_id =
e.id
AND s.sale_date >= '2024-01-01'
AND s.sale_date < '2025-01-01'
);
```

---

🎯 Отличная задача, чтобы понять, **где правильно ставить фильтрацию по дате**, и чем `LEFT JOIN` отличается от `NOT EXISTS`.
  • 👍 10
  • 🔥 8
  • 😁 2
  • ❤ 1
  • 🤨 1
More from @databases_tg
  1. Oct 2, 2026Как SQLite превращает числа в текст в 2 раза быстрее? Трюк с парами цифр Обычно число пере…
  2. Oct 2, 2026В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области Rec…
  3. Oct 1, 2026Жиз
  4. Sep 30, 2026📝 5 уровней ИИ-агентов: от промпта до продакшена Context, loop, Jev, harness и evals: раз…
  5. Sep 26, 2026UPDATE — оператор обновления данных в MySQL 🗂️ Если в таблице нужно изменить значение в у…
  6. Sep 25, 2026🧠 SQL-задача с подвохом Есть таблица транзакций: CREATE TABLE transactions ( id int PRIMA…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →