За последние 24 часа нас посетили 19024 программиста и 1616 роботов. Сейчас ищут 683 программиста ...

Выбрать с максимальной длиной в своей категории

Тема в разделе "MySQL", создана пользователем joost, 11 сен 2009.

  1. joost

    joost Guest

    Есть таблица
    Модели (name,rubric)
    samsung star, 124
    nokia n73, 254
    nokia n70 black, 254
    lg kp500, 123

    Надо выбрать модели с максимальной длиной названия в свое рубрике
    Результат
    samsung star
    nokia n70 black
    lg kp500

    Пробовал так
    [sql]select max(name) from table group by rubric[/sql] - не то
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    сам как пытался? куда голова делась, она же работала? думаешь тут все полностью за тебя напишут? ))
     
  3. joost

    joost Guest

    Пробовал так SQL:
    select max(name) from table group by rubric

    - не то

    п/с и еще несколько разных вариантов
     
  4. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    так как называется строковая функция длины строки? ))
    и как будут сравниваться строки напрямую, а=б?
     
  5. joost

    joost Guest

    length
    length(a)=length(b)
     
  6. joost

    joost Guest

    [sql]select name from table where lenght(name)=max(name) group by rubric[/sql]
    не проходит
     
  7. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    это что за условие? как пишутся запросы с max() ... group by?
     
  8. joost

    joost Guest

    а как должно быть?
     
  9. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    а как ты писал в первом посте?
     
  10. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    [sql]SELECT `name` FROM `table` r WHERE LENGTH(`name`) = (SELECT MAX(LENGTH(rr.`name`)) FROM `table` rr);[/sql]
     
  11. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    страх и ужос.
     
  12. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    armadillo
    можно глянуть твой вариант ?
     
  13. joost

    joost Guest

    nimistar
    в твоем запросе не учтено