ФорумРазработкаУстановка и администрирование ПОСерверы баз данных → Выбрать максимальную строку в сгруппированном множестве

Выбрать максимальную строку в сгруппированном множестве

  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 7 июля 2011 г. 13:57, спустя 5 минут 52 секунды


    ну заебись, че. Вот только
    мне нужно получить ряд с максимальным значением n в группе. Именно весь ряд а не само это максимальное значение в группе




    если брать относительно твоего примера то работает
    приведи пример другой тогда
    под максимальным рядом ты как я понял подразумеваешь максимальные значения всех остальных полей помимо title?
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 7 июля 2011 г. 13:58, спустя 1 минуту 10 секунд

    подробней плизз про сервер очередей. Тут как бы еще трабла такая, что все время нужно показывать актуальную информацию. Отменили встречу - нужно ее спрятать из таблицы событий. Написали комментарий к блогозаписи - нужно обновить старые события и выставить в них новое кол-во комментариев.

    Это не совсем логично, я считаю, но так нужно.
    Спустя 41 сек.
    fgets, нет, только по 1 полю максимальное нужно. Но мне необходимо получить все поля, а не только это максимальное
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 июля 2011 г. 14:01, спустя 3 минуты 6 секунд

    погугли, но я вот слету нагуглил очереди на берклидб, думаю они побыстрее мускуля будут :-)

    http://memcachedb.org/memcacheq/
    Спустя 71 сек.
    queue server
    Сапожник без сапог
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 7 июля 2011 г. 14:02, спустя 34 секунды

    приведи наглядный пример того, что ты хочешь, на подобии того, что в 1 посте
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 7 июля 2011 г. 14:07, спустя 4 минуты 59 секунд

    ты издеваешься? это я и хочу
    Спустя 19 сек.
    считай, что мне эти айдишники позарез нужны, вот только они разные на самом деле)
  • Animator

    Сообщения: 194 Репутация: N Группа: Кто попало

    Spritz 7 июля 2011 г. 15:25, спустя 1 час 18 минут 38 секунд

    Абырвалг, я может щас не сильно все правильно понял… но! я когда то проделал тесты и досих пор всегда их делаю…
    короче, дешевле данные обработать, чем их получить
    тоесть - разделяй и властвуй :)
    бери все, а потом обрабатывай в скрипте - ИМХО
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 июля 2011 г. 21:55, спустя 6 часов 29 минут 31 секунду

    Абырвалг, т.к. SQL накладывает ограничения при группировке, это решается через подзапрос.
    во внутреннем запросе находишь что-то типа id записи где искомое значение максимальное,
    потом результат джойнишь по id с этой же таблицей и добываешь все нужные поля.

    Я говорю "что-то типа id" потому что это не обязательно id :) это может быть любой набор полей, уникально указывающий на запись. Часто есть несколько кандидатов на уникальный ключ.

    SELECT
    p.*
    FROM
    posts AS p INNER JOIN
    (SELECT author_id, max(post_date) AS max_date FROM posts GROUP BY author_id) AS pmax
    ON (pmax.author_id=p.author_id) AND (pmax.max_date=p.post_date)
    ORDER BY p.post_date DESC

    Спустя 215 сек.
    Очевидно в блоге или на форуме один автор не может иметь две записи с одинаковой меткой времени.
    В результате мы должны получить список последних постов каждого автора - по одному на автора.
    ιιlllιlllι унц-унц
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 8 июля 2011 г. 0:46, спустя 2 часа 51 минуту 23 секунды

    как бы да, все это есть в
    http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

    но как я уже говорил, переписать это на DQL будет нереально. Но можно спуститься до NativeQuery
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 8 июля 2011 г. 7:19, спустя 6 часов 33 минуты 15 секунд

    короче специфика моей задачи позволила мне исхитриться и сделать несколько иначе. У меня уже было 2 запроса - выборка основных событий (с группировкой) и выборка вторичных. И в общем я добавил колонку - groupId (по которой собственно и происходит группировка), во втором выбираю связанные события и сортирую их как нужно.

    Ну и значит я из первого запроса ничего не вывожу а вывожу данные из второго
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 июля 2011 г. 7:23, спустя 3 минуты 29 секунд

    главрыб, ты умен, честно, хоть я и нихуя даже не пытался задуматься чо ты там сделал :-)
    Сапожник без сапог
  • Animator

    Сообщения: 194 Репутация: N Группа: Кто попало

    Spritz 8 июля 2011 г. 8:13, спустя 50 минут 29 секунд

    Абырвалг, дуд прав, ты умен, но у тебя не творческий подход.
    развивай левое полушарие :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 июля 2011 г. 8:18, спустя 4 минуты 40 секунд

    развивай левое полушарие :)

    я ему тоже постоянно говрю что левая ягодится никуда не годится, пусть подкачивает!
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июля 2011 г. 8:41, спустя 23 минуты 4 секунды

    попробуй делать это другой рукой.
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!