Re: Немного футбола | |
---|---|
Foxtrot Автор Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
сорян за неточность
последнюю серию найти не составило труда: нахожу дату последнего проигрыша, считаю количество всех матчей после этой даты но вот такое проделать со всеми интервалами пока не получается ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Немного футбола | |
---|---|
Sawradym Сообщений: 2244 Откуда: Винница Дата регистрации: 15.05.2007 |
Нет. Нулевые серии будут только между двумя подряд проигранными матчами. Вычислив все серии, легко определить и максимальную и самую короткую и даже среднеарифметическую, мало ли что заинтересует футбольных гурманов. ;) Интересно тем кто интересуется статистикой и анализом. ------------------ |
Re: Немного футбола | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
То есть запрос - это не команда? А вот в Help это называется SELECT SQL command Зависит от постановки задачи. На самом деле, если исходить из общих соображений, то ему захочется узнать много больше, чем просто максимальный размер такой серии. Как минимум: 1) название команды, которая ее исполнила; 2) сам перечень матчей, составляющих серию (по ним затем получать доп.статистику, например, продолжительность серии в днях, сколько очков было набрано и т.п.); 3) если таких серий будет больше одной, то получить все эти серии. Допустим, можно соорудить некого SQL-монстра, обеспечивающего решение текущих хотелок. Через пару месяцев хотелки разрастутся или изменятся, а ты уже забыл и как работает этот монстр, и не факт, что новые хотелки можно реализовать его модификацией. Не лучше ли сразу решить задачу наиболее прозрачным способом, легким в понимании и открытым для дальнейших доработок? |
Re: Немного футбола | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
А как же тогда ваша аксиома: Беспроигрышных серий ровно на одну больше чем проигрышей. ? Здесь одна нулевая серия (L-L) или три (-L-L-)? |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
О каком монстре речь. В хотелке, нет ничего необычного. Все легко решается. Аналогичные (похожие)алгоритмы в складских и продажных программах, думаю постоянно встречаются.
Странно. Новые хотелки, решаются новым запросом. Возможно на основании данных полученных в этом. Полагаю, получив результат первого запроса, легко реализовать все ваши пожелания, а так же и другие. А вообще, это вопрос религии. Где все обрабатывать. Затащить ВСЕ на клиента, и там обработать, понятным программисту образом. Либо, разобраться с сиквелом, и решить все на сервере, и отдать клиенту, нужный набор данных. Делают и так, и так. Но полагаю, по сегодняшнему феншую))) ТС идет правильным путем. |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Мне кажется алгоритм не точен. берем 1 команду, 1 турнир. ищем ск. макс. игр между проигрышами. Потому как последний проигрыш, может быть после 30 беспроигрышных. Паша упоминал про оконные функции, явно ваш случай. |
Re: Немного футбола | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Для последней серии (повторяю): - упорядочиваем матчи по датам (слева - старые, справа - свежие), далее назовем этот список элементов "сигнатурой" - ищем слева направо последний проигранный матч, (или справа первый проигранный) - все матчи вправо от этого проигранного и есть "серия" выигранных (длины 0, 1 и более) Для поиска всех серий (интервалов?) выигрышей/проигрышей у одной команды: - измеряем длину проигрышей справа сигнатуры, записываем найденную дату и длину в выходной поток (может пригодится), отрезаем серию проигрышей - выполняем алгоритм для поиска последней серии выигрышей, записываем результат (дату и длину серии) в выходной поток - отрезаем справа от сигнатуры эту серию выигрышей (уже знаем ее длину и дату) - повторяем сначала, завершаем, когда длина сигнатуры станет равной 0 А вот как свести задачу к поиску "дырок" в автоинкрементном поле (возможно, для этого есть "стандартные" пути): - опять создаем сигнатуру, т.е. упорядоченный список элементов, каждый элемент - {дата, признак выиграл/проиграл} - нумеруем элементы слева направо от 1 до последнего (создаем аналог хорошо заполненного автоинкрементного поля) - удаляем все элементы с признаком "проиграл" (или "выиграл") - получили автоинкрементный список с "дырками", в котором ищем "серии"... forum.foxclub.ru - вот тут есть трезвые мысли по поводу "дырок", и мои тоже ) |
Re: Немного футбола | |
---|---|
Foxtrot Автор Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
селект покажи для тех кто с бронепоезда ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Описание оффа честно не понял)
Не вчитывался. Мне кажется их может быть очень много. Возможно, если не окно, то CTE. Но все же, без структуры написать запрос... затруднительно) Кинь create table А если еще и данных нагеренишь... Думаю тут же тебе насочиняют на любой вкус |
Re: Немного футбола | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> селект покажи для тех кто с бронепоезда
Идеи - бесплатно, код - оплата построчно Кода (в виде SQL-запроса) нет, но реализация похожего есть (в ссылке). У меня была задача показать дыры в свозных нумерациях документов. В фоксовом SQL не получилось, слелал в виде фоксовой проги. Но все Сам алгоритм поиска я привел, он в виде программы реализуем. Изложить в виде SQL-запроса, наверное, тоже можно (вложенные SQL-запросы - это же тоже "программа")... |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Я просто исходил из этого пожелания. И оно, на мой взгляд логично, коли данные на MS SQL. К чему тащить на клиета 10 таблиц, и 100лям записей, для получения 10 строк? |
Re: Немного футбола | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Он описал лишь одну таблицу, а вытащить из нее надо не более 500 матчей (более длинных футбольных турниров пока нет). А далее делай с ними, что и как хошь. |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Сам же писал о дальнейшем развитии))) Повторюсь, дело вкуса. Не умеешь на сервере, понятнее на клиенте, делай как тебе лучше. А поскольку это вообще, вроде как для себя... я б развивался правильно (SQL рулит ) А можно оба реализовать, и увидеть, какой лучше. Выложить оба здесь, и пусть народ наслаждается критикой, и спорит))) |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Прямо в тему, только что на sql.ru увидел.
www.sql.ru 5 строк всего Уверен, так просто на клиенте не сделать. |
Re: Немного футбола | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Если на "сервере" (интернетовском, где размещен футбольный сайт), то такая конструкция всегда сработает?...
Исправлено 1 раз(а). Последнее : of63, 14.03.19 16:58 |
Re: Немного футбола | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Олег, ну ты и вопросики задаешь, как вчера родился... Это, в общем-то, кусок кода на Transact SQL (T-SQL), языке MS SQL сервера. При чем тут интернетовские серверы? А фоксовый код всегда сработает "на "сервере" (интернетовском, где размещен футбольный сайт)"?
------------------ Лень - это неосознанная мудрость. |
Re: Немного футбола | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Я не верю, что ROW_NUMBER() работает на всех платформах, и что это "стандарт" T-SQL/ Книжка по T-SQL у меня есть, там такой штуки не встречал, но наизусть ее не помню. Про OVER и PARTITION тоже не слышал, будем почитать... ЯП же развиваются (частоприменяемые пожелания юзеров оформляются в фреймверки, предикаты, во всякие конструкции, в которых не поймешь с разбега)
Доб офтоп. Я пока на DBF таблицах живу. Доживаю, до 2Г осталось 5 лет, но отодвинули пенс. возраст, плин. С ужасом думаю, что вместо каталога с табличками надо будет SQL-бандуру содержать... С табличками - их переписал Нортоном на машину, и вот они готовы к употреблению... С SQL-БД не знаком, только с фоксовым SQL > А фоксовый код всегда сработает "на "сервере" (интернетовском, где размещен футбольный сайт)"? Тоже не понимаю. Почему бы не сделать виртуальные машины, чтобы любые написанные проги можно было бы размещать на серверах в интернете. Например, написал прогу на фоксе, ее можно юзать по RDP, но нельзя разместить в виде сайта. Это плохо. Исправлено 2 раз(а). Последнее : of63, 14.03.19 17:40 |
Re: Немного футбола | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Какие еще "платформах"? Или ты так своеобразно именуешь версии сервера? Как минимум с 2005-го, который по нынешним меркам счиатется большой древностью. Цитата:Это из стандартов SQL, а не T-SQL Цитата:Какого-нибудь тухлого года? Цитата:Плохо, совсем закостенел... Цитата:Вот именно! Цитата:Было бы желание. Вот когда его нет... ------------------ Лень - это неосознанная мудрость. |
Re: Немного футбола | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
На Постгре пойдет?
Книжка тухлого года Закостенел (но не до этого, есть более важные задачи, типа отчетности и налогообложенияЮ, там программирование не главное) Желание есть, нет необходимости (см. п. выше) и времени соответственно |
Re: Немного футбола | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
T-Sql - это язык для MS SQL, так же как PL/SQL язык для Oracl (свои диалекты ansi)
Кусок что ты привел, не имеет смысла, потому как это CTE, а ты выдрал его часть. Первое что выдал гугл. www.sql-tutorial.ru В инете полно материала. И вроде как понятно... И как полагаю, для постгри свой синтаксис, но смысла не меняет. По моему CTE есть во всех современных субд. ЗЫ посмотрел ссылку что я дал, так это ж как раз постгри))) Исправлено 2 раз(а). Последнее : Аспид, 14.03.19 19:30 |
© 2000-2024 Fox Club  |