Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MS SQL

  Все выпуски  

RFpro.ru: Базы данных MS SQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гуревич Александр Львович
Статус: Профессионал
Рейтинг: 4792
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2264
∙ повысить рейтинг »
Megaloman
Статус: Профессор
Рейтинг: 1617
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Базы данных / MSSQL, Oracle, Interbase, Firebird, FoxPro

Номер выпуска:73
Дата выхода:24.12.2010, 13:30
Администратор рассылки:Victor Pyrlik (Мастер-Эксперт)
Подписчиков / экспертов:144 / 63
Вопросов / ответов:1 / 1

Вопрос № 181441: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Есть таблица `cells` в базе данных MySQL. Поля id (serial), x (int), y(int), status (tinyint). В табице уже есть миллион записей что чоотвечтвует матрице 1000Х1000. Соотвест...



Вопрос № 181441:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Есть таблица `cells` в базе данных MySQL. Поля id (serial), x (int), y(int), status (tinyint). В табице уже есть миллион записей что чоотвечтвует матрице 1000Х1000. Соотвестенно "х" и "у" это коорднаты в матрице (Например х=324, у=300), а status может быть 1(занятая ячйка) или 0(свободная). В матрице ячейки могут образовывать квадратные области, Например, коррдинаты 0,0 и размер квадратной области 5 значит что мы имеем квадратную область в которую входять ячейки с 0,0; 0,1; 0,2; 0,3; 0,4; 1,0; 1,1; и т.д короче в этой квадратной области 25 ячеек занятых.
Вообщем думаю суть таблицы ясна: в ней есть ячейки, некоторые из них свободны, а некоторые заняты, и кажадая имеет свои координаты в системе координат (или матрице, кому как удобнее).
Внимание вопрос: Как с помощю SQL запроса мне выбрать свободную область (например 4Х4). Тоесть мне надо выбрать четыре ряда, которые име ют неприрывную последовательно по "х" и по "у", и где "status" = 0. Все что у меня есть э то размер области (количеста ячеек).

Спасибо.

Отправлен: 19.12.2010, 13:15
Вопрос задал: Александр (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Павел Юрьевич (6-й класс) :
Здравствуйте, Александр!

Привожу решение, которое выведет Вам все левые верхние координаты углов квадратов. В SQL-запросе замените "5" во всех местах на нужный Вам размер квадрата:

Код:
select yc, xc
from
(
select y, xc from cells join (select distinct x as xc from cells) xx
where x >= xc and x < xc+5
group by y, xc
having sum(status) = 0 and count(*) = 5
) xgr join (select distinct y as yc from cells) yy
where y >= yc and y < yc+5
group by yc, xc
having count(*) = 5

Ответ отправил: Павел Юрьевич (6-й класс)
Ответ отправлен: 19.12.2010, 18:18
Номер ответа: 264899

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264899 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Ответ поддержали (отметили как правильный): 1 чел.



    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное