Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Аццкий запрос / 11 сообщений из 11, страница 1 из 1
19.11.2015, 22:54:24
    #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
20.11.2015, 00:07:45
    #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
20.11.2015, 02:51:44
    #39108424
alkos1984
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аццкий запрос
retvizan,

Ох, спасибо огромное! Работает как часы!
А я, было, пошел существенно более сложным путем..
...
Рейтинг: 0 / 0
20.11.2015, 05:19:43
    #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
20.11.2015, 06:06:03
    #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
20.11.2015, 14:34:13
    #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
20.11.2015, 16:37:51
    #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
20.11.2015, 18:29:59
    #39109389
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аццкий запрос
javajdbcя не понял про ноль....
Вот потому и DISTINCT, что не до нуля...
...
Рейтинг: 0 / 0
21.11.2015, 07:22:22
    #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
21.11.2015, 19:10:15
    #39109784
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аццкий запрос
javajdbc , пятница, аднака...
Мозг, вероятно, имел в виду
Код: sql
1.
t2.B-t1.B BETWEEN 0 AND 1

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

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

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


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