1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Jil помоги

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Synth (LM), 12 ноя 2010.

  1. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Вот запрос:
    Код:
    SELECT name, server, (
    " + formula + "
    ) AS totalscore
    FROM (
    
    SELECT * , (
    kills / deaths
    ) AS killdeathratio, (
    left1 / duration
    ) AS leftratio, (
    totgames - wins
    ) AS losses
    FROM (
    
    SELECT gp.name AS name, ga.server AS server, gp.gameid AS gameid, gp.colour AS colour, AVG( dp.courierkills ) AS courierkills, SUM( dp.raxkills ) AS raxkillstotal, SUM( dp.towerkills ) AS towerkillstotal, SUM( ga.duration ) AS duration, SUM( gp.left ) AS left1, SUM( dp.ASsists ) AS ASsiststotal, SUM( dp.courierkills ) AS courierkillstotal, SUM( dp.creepdenies ) AS creepdeniestotal, SUM( dp.creepkills ) AS creepkillstotal, SUM( dp.neutralkills ) AS neutralkillstotal, SUM( dp.deaths ) AS deathstotal, SUM( dp.kills ) AS killstotal, AVG( dp.raxkills ) AS raxkills, AVG( dp.towerkills ) AS towerkills, AVG( dp.ASsists ) AS ASsists, AVG( dp.creepdenies ) AS creepdenies, AVG( dp.creepkills ) AS creepkills, AVG( gp.left ) AS AVGleft, AVG( ga.duration ) AS AVGduration, AVG( dp.neutralkills ) AS neutralkills, AVG( dp.deaths ) AS deaths, AVG( dp.kills ) AS kills, count( * ) AS totgames, SUM( 
    CASE WHEN (
    (
    dg.winner =1
    AND dp.newcolour <6
    )
    OR (
    dg.winner =2
    AND dp.newcolour >6
    ) ) 
    THEN 1 
    ELSE 0 
    END 
    ) AS wins
    FROM gameplayers AS gp, dotagames AS dg, games AS ga, dotaplayers AS dp
    WHERE dg.winner <>0
    AND dp.gameid = gp.gameid
    AND dg.gameid = dp.gameid
    AND dp.gameid = ga.id
    AND gp.gameid = dg.gameid
    AND gp.colour = dp.colour
    GROUP BY gp.name
    HAVING totgames >=1
    ) AS h
    ) AS i
    ORDER BY totalscore DESC , name ASc
    Это бот готовит данные для дальнешей отправки их в scores. Но схема составления totalscore немного не та, что мне нужна - нельзя ли заставить запрос сканировать все колонки таблицы dotaplayers where name = (тут сравнение по цвету из gp.colour) сначала для каждой игры. Допустим игрок получает 50 очков за игру и эти 50 очков нужно умножить на (60/ga.duration). Потом предыдущий результат умножения суммировать со следущим, тоесть со следущей gameid, где играл этот игрок. <- вот как это поместить в SQL запрос. Производительность не имеет значения - главное результат. Плз)
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    SELECT COUNT(*) FROM tbl_name WHERE name='lol';
  3. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    А если внедрить в данный код? Я же не понял куда это вставлять :nea:
  4. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Ну если ты не понял то как я могу понять?
    :opasnoste: :palevo: :facepalm:
  5. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    вот такая идея: чтобы очки считались не один раз все очки
    а после каждой игры во время сейва добовляло очки в таблицу...
    минус: игры до этого не будт посчитаны
    плюс : более разнообразные формулы для подсчета

    или можно изменить дота_ело
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    ок я согласна, делай :O
  7. JiLiZART Администрация

    Сообщения:
    815
    Спасибы:
    35
    Сборка бота GHost:
    Ghost++ 17.1
    Дата начала использования бота:
    12.12.04
    ты хоть понимаеш, если у человека будет около 50к игр, что станет с MYSQL ?
    Советую разбить всё это на несколько запросов, чтобы снизить нагрузки.
  8. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    С первым кодом я нипричем - это же дефолтный из бота.