Не могу додуматься и вообще возможно ли то о чем речь пойдет далее&#33

Тема в разделе "SQL", создана пользователем DoniySerhey, 23 авг 2011.

  1. DoniySerhey

    DoniySerhey Гость

    Значит, дело обстоит так.
    Заказал мне мой друг прогу. Идея состоит в чем... Без предистории не обойтись!
    Он системщик, т.е. играет в цифровые гослотереи не на абум а просчитывая все худшие случаи... В общем, живет довольно неплохо, у него это получается.
    Программа в следующем: по определенному расчету рассчитываются квадраты 20х20, т.е. массив 20х20. С этим проблем вообще нету. Потом эти все квадаты заносятся в таблицу SQL в таком виде:
    берется строка поиска и проверяется каждое число: если оно в поиске есть, то вместо числа заноситься 1, если его нет, то 0

    |Ид|Дата_тир|Номер_Кв|1ч|2ч|3ч|...|ч400| и сразу же пример:
    |1 |2002 |1 |1 |0 |1 |... |0 |

    с этим у меня трудностей нет, но потом задача завела меня в тупик:
    необходимо сформировать новые квадраты, в которых будет отражено следующее:
    1. Позиции (т.е. теперь уже набор из предыдущей таблицы, который строится по логике так: сравнивается 1 квадрат 16052002 со всеми квадрата следующих годов (16052003 и т.д. - обычно 10-11 тиражей) и выбираются все совпавшие "1" из таблицы таким образом, чтобы подобный набор встречался в максимально возможном числе годов. Сразу же пример, въехать вв это сразу сложно:
    набор исходный: 2002 год: 0 1 0 1
    2003 0 1 0 1
    0 0 0 1
    2004 1 1 1 1
    0 0 0 0
    2005 0 1 0 0
    0 1 0 1
    Должен выбрать: 0 0 0 1, так как он больше всего встречается. Заметьте, выбрать нужно число в той позиции, в которой оно находится, получить в ответе просто набор 1 не подходит, обязательно позиции, которые не совпали обнуляются вне зависимости значений в таблица...
    Такое вообще возможно?
     
  2. CSerX

    CSerX Гость

    Как мне кажется для начала тебе нужно твою таблицу разбить на две:
    1. Ид|Дата_тир|Номер_Кв
    2. Число|Значение|Ссылка
    тогда у тебя больше шансов сделать запрос, т.к. написать запрос по 400 колонок не реально.
    И используй агрегацию, Например просуммируй все значения по одному числу и посчитай их количество вот тут и можно выбрать 1 или 0 в итоге
     
Загрузка...

Поделиться этой страницей