TGViewer
Data Science. SQL hub Data Science. SQL hub @sqlhub · 36K subscribers
Post #1999 5.43K
🖥 SQL-задача с подвохом: почему COUNT(*) считает не так, как ты думаешь?

🧠 Условие:

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


users
---------
id | name
---|-----
1 | Alice
2 | Bob
3 | Charlie

orders
----------
id | user_id | total
----|---------|-------
1 | 1 | 100
2 | 1 | 200
3 | 2 | 300


Нужно вывести всех пользователей и количество их заказов, включая тех, у кого заказов нет вообще.

Ты пишешь:


SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;


❌ Результат:


1 | Alice | 2
2 | Bob | 1
А где Charlie? 😡


📌 Подвох: JOIN убирает строки без соответствий — Charlie не попадает в результат вообще.
Нужно использовать LEFT JOIN, чтобы сохранить всех пользователей.

✅ Правильное решение:


SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;


Теперь результат:


1 | Alice | 2
2 | Bob | 1
3 | Charlie | 0


💡 Вывод:
Хочешь сохранить всех из "левой" таблицы — используй LEFT JOIN.
А COUNT(о.id) не считает NULL — и это хорошо: ты получаешь реальное число заказов, а не просто 1 за NULL.

@sqlhub
  • 👍 28
  • ❤ 15
  • 🔥 5
  • 😁 3
  • 👏 1
More from @sqlhub
  1. Sep 25, 2026Тысячи ИИ-агентов одновременно читают продакшен-базу. Что происходит с PostgreSQL? Google…
  2. Sep 24, 2026Softmax простыми словами: что значат 66,5% в ответе нейросети? Softmax простыми словами: C…
  3. Sep 24, 2026🔥Один слой данных вместо цепочки копий между системами В традиционной аналитической инфра…
  4. Sep 23, 2026⚡️ SQL-задача с опасным подвохом Какой баланс получит аккаунт после выполнения запроса в P…
  5. Sep 22, 2026🌟 Samsone: открытые аудиоязыковые модели для смартфонов Samsung опубликовали Samsone - се…
  6. Sep 22, 2026Объектное хранилище в эпоху быстрых данных Объём данных, с которыми нужно работать, растёт…
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 →