У меня есть пакетное задание, которое я запускаю на столе, которое, я уверен, я мог бы написать как подготовленное утверждение. В настоящее время все это на Java и, без сомнения, менее эффективно, чем могло бы быть. Для таблицы вот так:
CREATE TABLE thing (
`tag` varchar,
`document` varchar,
`weight` float,
)
Я хочу создать новую таблицу, содержащую N верхних записей для каждого тега. В настоящее время я делаю это:
create new table with same schema
select distinct tag
for each tag:
select * limit N insert into the new table
Для этого требуется выполнить запрос, чтобы получить отдельные tag
с, затем выбрать верхние N
элементы для этого тега и вставить их ... все очень неэффективно.
Есть ли хранимая процедура (или даже простой запрос), которую я мог бы использовать для этого? Если диалект важен, я использую MySQL.
(И да, мои индексы отсортированы!)
Приветствия
Джо