За последние 24 часа нас посетил 55151 программист и 1615 роботов. Сейчас ищут 1356 программистов ...

MAX и SUM

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

  1. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Добрый день, следующий запрос является неверным, но написать правильно не получается :(
    [sql]SELECT MAX(SUM(total)) FROM my_table GROUP BY title[/sql]
    Подскажите пожалуйста
     
  2. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    А что хотим получить? :)
     
  3. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    В общем нужно: находу просуммировать столбец total выявить максимальные числа просуммированного столбца в рамках 1 товара (поэтому у меня и GROUP BY). Эти строки и нужно получить отсортировав их по убыванию
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    У тебя ошибка в постановке задачи

    Вот это решение соответствует ей, но оно неправильное
    [sql]SELECT MAX(sumT) FROM
    (SELECT SUM(total) as sumT FROM my_table GROUP BY title ) as t;[/sql]


    В твоей формулировке у тебя две задачи
    [sql]SELECT SUM(total) FROM my_table GROUP BY title[/sql]
    Выведет тебе суммы в рамках одинаковых title.
    Она будет всегда 1на для конкретного товара и никаких MAX не будет.

    Если тебе нужно найти самый дорогой экземпляр товара, то нужен такой запрос
    [sql]SELECT MAX(total) FROM my_table GROUP BY title[/sql]
    Соответственно никаких SUM тут не будет.

    Поэтому, подумай и определись, что тебе нужно сделать? :)
     
  5. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Видимо я неправильно объяснил, смотри, у меня 3 группы товара к примеру:

    Клавиатура, мышь, монитор (в скобках сумма в руб)

    Клавиатура A4 Tech - 200
    Клавиатура Apple - 250
    Клавиатура BenQ - 300

    Мышь - Logitech - 180
    Мышь - Genius - 220
    Мышь - Gembird - 250

    Монитор Lg - 5000
    Монитор Sansung - 6000
    Монитор HP - 7000

    Нужно каждую группу просуммировать (группа клавиатура = 750, мышь = 650, монитор = 18000)
    Теперь нужно отобразить общий результат: клавиатура = 750, мышь = 650, монитор = 18000 и отсортировать результат по убыванию (вначале будет группа монитор, потом клавиатура, и наконец мышь)
     
  6. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    [sql]SELECT SUM(total) as T FROM my_table // сумма
    GROUP BY title // группировка по критерию
    ORDER BY T DESC // сортировка по убыванию по полю T[/sql]
     
  7. host

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

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    точно)) Я что-то зациклился на max() Спасибо!