powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аццкий запрос
11 сообщений из 11, страница 1 из 1
Аццкий запрос
    #39108370
alkos1984
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас большой факап произошел - сервис в половине рынков в мире навернулся. И для анализа ошибки нужно найти в таблице следующее (третий день безрезультатно бьюсь):
Предположим, таблица

А B
1 5
1 6
2 5
2 7
2 8
3 9

Нужно найти строки, в которых для одинаковых значений в столбце А разница между значениями в столбце B меньше или равна 1.
Т.е., в данном случае ответ

А B
1 5
1 6
2 7
2 8

Буду очень признателен за помощь. А то уволят к чертовой матери (хоть это и не мой профиль)
...
Рейтинг: 0 / 0
Аццкий запрос
    #39108406
retvizan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alkos1984,

в лоб
Код: sql
1.
2.
3.
select t.* from test t where 
(select B from test t1 where t1.A=t.A and t1.B>t.B order by B limit 1)-B <=1 
or B-(select B from test t1 where t1.A=t.A and t1.B<t.B order by B desc limit 1) <=1;



или красиво через пользовательские переменные.
...
Рейтинг: 0 / 0
Аццкий запрос
    #39108424
alkos1984
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
retvizan,

Ох, спасибо огромное! Работает как часы!
А я, было, пошел существенно более сложным путем..
...
Рейтинг: 0 / 0
Аццкий запрос
    #39108444
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
retvizan
Код: sql
1.
2.
(select B from test t1 where t1.A=t.A and t1.B>t.B order by B limit 1)-B <=1 
or B-(select B from test t1 where t1.A=t.A and t1.B<t.B order by B desc limit 1) <=1

а можно просто взять модуль, избавившись тем самым от лишнего подзапроса
...
Рейтинг: 0 / 0
Аццкий запрос
    #39108453
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirretvizan
Код: sql
1.
2.
(select B from test t1 where t1.A=t.A and t1.B>t.B order by B limit 1)-B <=1 
or B-(select B from test t1 where t1.A=t.A and t1.B<t.B order by B desc limit 1) <=1


а можно просто взять модуль, избавившись тем самым от лишнего подзапроса

...ну и distinct добавить если не надо повторений...
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109059
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не просто
Код: sql
1.
2.
3.
4.
SELECT t1.*, t2.B
FROM `table` t1, `table` t2
WHERE t1.A=t2.A
AND t1.B BETWEEN t2.B-1 AND 0


?
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109265
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...чет я не понял про ноль.... наверно имелось ввиду примерно так (?) :

Код: sql
1.
2.
3.
4.
SELECT distinct t1.*
FROM `table` t1, `table` t2
WHERE t1.A=t2.A
AND t1.B BETWEEN t2.B-1 AND t2.B+1
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109389
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcя не понял про ноль....
Вот потому и DISTINCT, что не до нуля...
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109612
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinajavajdbcя не понял про ноль....
Вот потому и DISTINCT, что не до нуля...

допустим
t1.B = 374
t2.B = 791

t1.B BETWEEN t2.B-1 AND 0 >>> ?

374 BETWEEN 791-1 AND 0 >>> TRUE

нам то надо?
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109784
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc , пятница, аднака...
Мозг, вероятно, имел в виду
Код: sql
1.
t2.B-t1.B BETWEEN 0 AND 1

... но руки не донесли эту мысль до клавиатуры.
...
Рейтинг: 0 / 0
Аццкий запрос
    #39109835
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina javajdbc , пятница, аднака...
Мозг, вероятно, имел в виду
Код: sql
1.
t2.B-t1.B BETWEEN 0 AND 1

... но руки не донесли эту мысль до клавиатуры.

:-) cheers!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аццкий запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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