У меня есть пакетное задание, которое я запускаю на столе, который, я уверен, мог бы написать как подготовленный оператор. В настоящее время все это на Java и, без сомнения, менее эффективно, чем могло бы быть. За столом, как так:SQL выбирает группы отдельных элементов в подготовленном сообщении?
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.
(И да, я бы мои индексы сортируется!)
Приветствия
Джо
Несомненно, что бы получить все веса под значением N? То, что я хочу, это верхние значения N (т. Е. 'LIMIT N'). – Joe
Если вы используете <= thing.weight, то вам нужно <= N. Если вы используете