Intereting Posts
SQL Where Statement, несколько WHEREES Вставка Statement + Объединение данных таблицы и переменной в триггере Почему LEFT JOIN приводит к тому, что ошибка «многочастный идентификатор не может быть связана», когда INNER JOIN не работает? нахождение последней последовательной строки динамический счетчик элементов от SQLServer 2014 в веб-форме для Visual Studio 2015? Подстановочные знаки Microsoft Jet: знак звездочки или процент? Сортировка строковых символов в MySQL Ошибка доступа к Vba 91 «Сохранить изменения не разрешено» при изменении существующего столбца на значение NULL max рассчитывается вместе в запросе sql Как вставить с предложением where Каков наиболее эффективный способ вставки словарей / списков Python в базу данных SQL? Вычислить количество параллельных событий в SQL возможно ли вставить на основе выбора в одном из столбцов в MySQL? SQL, чтобы получить количество строк в столбце?

monetdb sql, чтобы найти или сопоставить ближайшее значение, без TOP или LIMIT

Я пытаюсь реплицировать этот вопрос в monetdb, который, я не верю, поддерживает команду TOP и может использовать только LIMIT для самого внешнего результата.

если бы я мог использовать TOP то я верю, что эта команда даст мне то, что я хочу. есть ли разумная альтернатива, которая не является массово неэффективной? Мне нужно запустить это на столе, который быстро удалит барабан моего сервера. благодаря!

 CREATE TABLE nearest_matches AS ( SELECT a.* , ( SELECT TOP 1 svcmon FROM person_table AS z WHERE a.yr = z.yr AND a.person_id = z.person_id ORDER BY abs( z.svcmon - a.svcmon ) ) AS nearest_month FROM event_table AS a ) WITH DATA 

от Стефана Манегольда в CWI

Здравствуй,

составление моих предложений, учитывая мое понимание желаемой семантики:

для вопроса orignal:

 create table a (id int, sales int, date timestamp); create table b (id int, goal int, date timestamp); select a.*, b.* from a,b, (select a.date as a_date, max(b.date) as b_date from a,b where b.date < a.date group by a.date) as ab where a.date = ab.a_date and b.date = ab.b_date; 

для вопроса ниже:

 create table event_table (yr int, person_id int, svcmon int, payload string); create table person_table (yr int, person_id int, svcmon int, payload string); select * from (select e.yr, e.person_id, e.svcmon as e_svcmon, e.payload as e_payload, p.svcmon as p_svcmon, p.payload as p_payload, row_number() over (partition by e.yr,e.person_id order by abs(e.svcmon - p.svcmon) asc) as pos from event_table e , person_table p where e.yr = p.yr and e.person_id = p.person_id) as ep where pos = 1; 

зная фактические схемы, поможет понять, идентифицировано ли «каждое событие» с помощью yr, person_id (как я полагаю выше) или, скажем, (yr, person_id, svcmon) (в этом случае e.svcmon следует добавить в раздел- по статье).

зная фактические схемы, также может помочь вывести проекцию из внутреннего запроса, как, таким образом, уменьшить размер (-ы) промежуточного результата …

Лучший, Стефан