Я новичок в MySQL. Столкнулся с проблемой при создании запроса.
Итак, у меня есть две таблицы: device_master_data, device_logs.
устройство_мастер_данные:
для любого device_id есть уникальный device_serial_number.
журналы устройств:
поэтому в этой таблице есть несколько записей для device_id.
например: есть 5 записей для device_id 1, 10 записей для device_id 2
Цель: Чтобы получить TOP 20 наиболее часто встречающихся device_id из таблицы device_logs а затем получите device_serial_number, соответствующий device_id.
Результат:
Пожалуйста, кто может помочь, это было бы очень полезно
Отвечает ли это на ваш вопрос? SQL Group BY, первые N элементов для каждой группы






Вы можете использовать группу следующим образом:
Select m.device_id, m.device_serial_number, count(*) as cnt
From device_master_data m join device_logs l on l.device_id = m.device_id
Group by m.device_id, m.device_serial_number
Order by count(*) desc
Limit 20
использовать это
SELECT COUNT(dl.device_id) as count, dmd.device_serial_number
FROM device_logs dl JOIN
device_master_data dmd
ON dl.device_id = dmd.device_id
GROUP BY d1.device_serial_number
ORDER BY count DESC
LIMIT 20;
Я почти уверен, что вы хотели device_serial_number в GROUP BY. В любом случае, update делает ответ правильным.
Спасибо за помощь, все работает.
что ты уже испробовал? Оператор SQL, пожалуйста.