powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти пропущенное число в таблице
29 сообщений из 29, показаны все 2 страниц
Найти пропущенное число в таблице
    #35264579
хряк7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице есть числа
0
1
2
3
4
6
7
8
9
10

подскажите плз, каким запросом можно получить пропущенное число (5)?
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264593
Фотография Владимир Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как определить что оно пропущено? А числа -1,-2 ;11, 12 и т.д??
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264612
Фотография Владимир Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете посмотреть в сторону временных таблиц.
P.S. Если не сложно запостите сюда: http://sql.ru/forum/actualthread.aspx?tid=548574&pg=1
вот эту ссылку http://www.firebirdsql.org/index.php?op=devel&sub=engine&id=fb210_release
а то инета нет а почитать охото
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264629
хряк7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Л.а как определить что оно пропущено? А числа -1,-2 ;11, 12 и т.д??забыл добавить, что нужны только положительные числа
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264635
Фотография Владимир Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хряк7 Владимир Л.а как определить что оно пропущено? А числа -1,-2 ;11, 12 и т.д??забыл добавить, что нужны только положительные числа
тоесть от 1 до ..... ))))
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264648
Фотография Владимир Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
))) ссылку и я могу выложить, я ее от туда и брал, вы инфу с этой ссылки положите в тот топек.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264721
хряк7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Л.))) ссылку и я могу выложить, я ее от туда и брал, вы инфу с этой ссылки положите в тот топек.готово
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35264730
Фотография Владимир Л.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хряк7 Владимир Л.))) ссылку и я могу выложить, я ее от туда и брал, вы инфу с этой ссылки положите в тот топек.готово
Спасибо
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265337
Одно число пропущено или несколько ?
Верхняя и нижняя границы фиксированные или нет ?
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265346
хряк7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Веб-программистОдно число пропущено или несколько ?
Верхняя и нижняя границы фиксированные или нет ?для упрощения пропущено только одно число 5 и в таблице только те данные что я написал в первом посту.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265362
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265365
хряк7 Веб-программистОдно число пропущено или несколько ?
Верхняя и нижняя границы фиксированные или нет ?для упрощения пропущено только одно число 5 и в таблице только те данные что я написал в первом посту.

Что значит "Для упрощения ?".
Верхняя и нижняя границы фиксированные или нет ?
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265366
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265370
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265741
TheLion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как насчет вот этого?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
set @a= 1 ;
set @dif= 0 ;

SELECT misNum
FROM
 (SELECT
    IF((@dif:=Num-@a)= 0 , 0 ,num- 1 ) AS misNum,
    @a:=Num+ 1  
  FROM t1) AS n
WHERE misNum<> 0 
ORDER BY misNum


-------------------------------------------------------
Жить будем плохо. Но недолго...
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265758
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yes, in-line variables can help a lot here.

select *
from
(select ( @a:=@a+1 ) x
from ( select @a:=0), big_table
where x <= N_MAX ) z left join your_table y on z.x=y.num

big_table has to have any table with record number more than N_MAX
In result it will be records with NULL at places where your_table missing number.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35265938
TheLion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc...
Well, your decision seems to be more complex & flexible.
But... demands additional table to solve problem.
хряк7's question was to find ONE hole in simple sequence.
I suggest some way. U too. On his(her) choice...

PS U're pro in in-line variables, isnt it? ;)
-------------------------------------------------------
Жить будем плохо. Но недолго...
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35266019
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TheLion
PS U're pro in in-line variables, isnt it? ;)

Не,я не про, скорее продвинутый чайник (по лыжной терминологии :-) )
Мне очень нравятся аналитические функции Оракла, но
у МуСКЛ их нет в явном виде. С помошжю ин-лине переменых и
некоторых вывертов, можно сделать роунум, ранк и денсе ранк,
ролапы всякие, лаг, даже расчеты в групах (ренже и виндов).

Вроде разработчики МУСКЛ обешали давно аналитику добавить,
но вроде пока тихо.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35267590
skol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если по тупому, то
Код: plaintext
1.
2.
3.
4.
select t1.N- 1  as missing
from T t1
where not exists (select N from T t2 where t2.N = t1.N -  1 )
and t1.N >  0 
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #35268714
хряк7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответы
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Найти пропущенное число в таблице
    #39477605
Fouxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Mysql:

Код: sql
1.
2.
3.
SELECT f1.index+1 AS `index` FROM `nodes` f1 
                LEFT JOIN `nodes` f2 ON f1.`index` = f2.`index`-1 
                WHERE f2.id IS NULL
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477621
Fouxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В предыдущем посте ошибка. НЕ БУДУТ НАЙДЕНЫ повторяющиеся пропущеные значения , а так же будет добавлено несуществующее последнее значение.
Я использовал этот запрос для заполнения пропусков при добавлении новых значений в базу

Код: sql
1.
2.
3.
4.
5.
SELECT f1.`index`+1 as ind 
FROM `flash_i18n_nodes` f1 
LEFT JOIN `flash_i18n_nodes` f2 ON f1.`index` = f2.`index`-1 AND f2.language='en' 
WHERE f1.language='en' AND f2.id IS NULL
ORDER BY ind ASC LIMIT 1;
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477624
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fouxer , запрос некорректен, потому как ищет в т.ч. и за пределами имеющихся данных вверх, но не ищет вниз.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477630
Fouxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Для последовательного заполнения пропущеных значений он как раз подходит.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477651
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если пропущено первое (или несколько первых) - он не будет найдено. Впрочем, решение в таком случае требует задания нижней границы нумерации.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477668
Fouxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как сделать, чтобы учитывалось первое значение ? Или надо полностью менять структуру запроса ?
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477682
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fouxer , тут скорее надо решать вопрос, как передать в запрос эту константу-значение. Если это сделать через переменную, то самым простым будет поиск с использованием переменной - т.е. инкрементируем эту переменную при сортировке по индексу и просто выбираем все записи, где прирост индекса не равен приросту переменной. Так мы получим все пропуски. А введя LIMIT - нужное их количество в порядке их возрастания.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477689
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, все не получим.
...
Рейтинг: 0 / 0
Найти пропущенное число в таблице
    #39477694
Fouxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и ладно.
Я этот запрос использую для заполнения пропущенных значений, которые получились из-за кривой структуры приложения. И получается, что первое существующее значение в таблице является точкой отсчета.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Найти пропущенное число в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]