![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Platon |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Здравствуйте, уважаемые.
Трудно сформулировать, чего я хочу. есть данные
Мне нужно составить список eId, kId, position, id для "предыдущего сеанса (scan_time)" по отношению к заданному для каждого ключа(если так можно выразиться) "eId kId" . Но предыдущего не совсем. Пример по данным: по отношению к scan_time = 3 список будет следующий
Если же в таблице данных будет отсутствовать запись с ID = 7, то получится:
Эквивалентный запрос:
Но такой запрос только на утилизацию, что я и делаю ![]() Прошу о помощи. |
||||||||
|
|||||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
задаёшь в параметре значение и тебе будет результат с учётом - 1 или я чего-то недопонял? |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Целевая платформа?
Почему Ваш запрос "на утилизацию"? Это сообщение отредактировал(а) Zloxa - 5.12.2008, 10:25 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Platon |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Zloxa, H2DB
Akella, существуют точки разрыва. Как привел пример
т.е. грубо говоря для каждого "eId, kId" надо найти запись с предыдущим по отношению к заданной scan_time. Для каждого eId, kId выполнять такой запрос
|
||||||
|
|||||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Этот подход в ораклином форуме на sql.ru называют "бабушкиным методом". Этот метод использовался до появления ранжирующих функций в диалекте оракла. Cуть метода - составить строку, которая начинается с ранжируемого значения а в хвосте несет информационную стоставлющую, вычислить аггрегат по полученной строке, затем разобрать ее и извлечь информационную стоставлющую. В нашем примере мы ранжируемся по scan_time. В аггрегируемом выражении мы переводим значение scan_time в строку и дополняем лидирующими нулями до максимальной разрядности числа (в оракле это 40. если у нас scan_time int(10), достаточно будет дополнять до 10 символов) для того, чтобы упорядочивание по строковому представлению совпадало с упорядочиванием по числовому представлению. Хвостиком, мы цепляем к строке position. После вычисления максимального значения из полученной строки извлекаем position. Данный подход не совсем красив и эстетичен. Но позволяет одним проходом, без джойнов достичь желаемого. И, он весьма универсален. Достаточно лишь перевести строковые функции на диалект целевой платформы. Это сообщение отредактировал(а) Zloxa - 19.9.2009, 02:56 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Zloxa, оох какая интересная теория! Спасибо попробую.
|
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Оформил. Работает.
Zloxa, +1!!! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |