19. Топ-10 телефонов, получивших больше всего SMS #
Условие задачи:
📌 Написать SQL-запрос для получения номеров телефонов (phone
), которые получили более одной SMS.
- Отсортировать список по убыванию количества сообщений.
- Оставить только топ-10 номеров с наибольшим количеством полученных SMS.
table: sms
id | phone | message
1 | 9876552222 | some message
2 | 9876552222 | some message
3 | 9876552234 | another message
Спойлеры к решению
Подсказки
💡 Используй
💡
💡
💡
GROUP BY
, чтобы сгруппировать данные по phone
.💡
HAVING COUNT(*) > 1
поможет отфильтровать только те номера, у которых более одной SMS.💡
ORDER BY COUNT(*) DESC
обеспечит сортировку от большего количества к меньшему.💡
LIMIT 10
позволит оставить только топ-10 номеров.Решение
SELECT phone, COUNT(*) AS sms_count
FROM sms
GROUP BY phone
HAVING COUNT(*) > 1
ORDER BY sms_count DESC
LIMIT 10;
✅ Объяснение решения:
GROUP BY phone
– группируем записи по номерам телефонов.COUNT(*) AS sms_count
– считаем количество сообщений для каждого номера.HAVING COUNT(*) > 1
– фильтруем только те номера, у которых больше одной SMS.ORDER BY sms_count DESC
– сортируем по убыванию количества сообщений.LIMIT 10
– оставляем только 10 самых популярных получателей.
🔥 Теперь можно быстро найти топ-10 номеров, получивших больше всего SMS! 📲🚀