powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выбрать максимальную скидку вычисляемой по двум столбцам?
9 сообщений из 9, страница 1 из 1
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007009
noindex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня!

Предположим таблица 3 столбца
product_id, price (цена), cpecial_price (цена со скидкой)
Как из таблицы выбрать максимальную скидку?
В случае с таблицей на рисунке это 50% у product_id = 3

Когда-то давно делал нечто подобное, но не могу вспомнить как, гугл не помогает...
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007073
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
noindex, вообще-то максимальная скидка - по первому товару.
Вам следует уточнить, что есть максимальная скидка, и что именно нужно получить - размер макс скидки или айди соответствующего товара.
Итоговый результат также очень сильно может зависеть от версии mysql
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007109
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paver,

select t.* from table having SKIDKA(t.) = max(SKIDKA(t.))

где SKIDKA(t.) - монотонно возрастающая функция от скидки, как вы ее определяете для каждой строки. (напр, сама скидка)

Строчек может быть более одной, для строк с равными максимальными скидками.
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007114
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL, Вы про ONLY_FULL_GROUP_BY читали? нет? так почитайте... стандарты соблюдать разумнее, чем пользоваться особенностями, которые могут и закончиться.
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007228
noindex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paver
вообще-то максимальная скидка - по первому товару.


Строго говоря да, но на деле цена со скидкой не может быть 0, это особенность приложения, в данном случае 0 в special_price тоже самое что и пустое поле.

paver
Вам следует уточнить, что есть максимальная скидка, и что именно нужно получить - размер макс скидки или айди соответствующего товара.


Нужна максимальная скидка, столбец product_id ввел чтобы указать у кого макс скидка.

paver
Итоговый результат также очень сильно может зависеть от версии mysql


10.3.22-MariaDB-0+deb10u1
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007274
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
SELECT *
FROM tablename
WHERE NULLIF(special_price, 0)
ORDER BY special_price LIMIT 1


Если при одинаковой макс. скидке надо вывести не один товар, а все - то RANK() в CTE по той же схеме.

PS. Не понимаю, зачем искать минимальную цену среди РАЗНЫХ товаров, но с ОДНОЙ ценой...
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007287
noindex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, мне не нужно выводить товар, мне нужно вывести мак сидку по таблице.
Запрос по моей таблице должен вернуть 50%, потому что это максимальная скидка, ваш пример тоже вернет 50 конечно, но order by тут как бы не в тему совсем...
Цена у товаров по факту разная, одинаковая цена для примера...
Вот еще пример, по нему должно вернуть 90
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007292
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что мудрить
MAX((price-special_price)/price*100)
только 0 и NULL обработайте
...
Рейтинг: 0 / 0
Как выбрать максимальную скидку вычисляемой по двум столбцам?
    #40007299
noindex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_Ustinov, похоже то что нужно!
Спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выбрать максимальную скидку вычисляемой по двум столбцам?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]