18. Топ-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! 📲🚀