Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выбрать максимальную скидку вычисляемой по двум столбцам? / 9 сообщений из 9, страница 1 из 1
09.10.2020, 16:17
    #40007009
noindex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать максимальную скидку вычисляемой по двум столбцам?
Всем доброго дня!

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

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

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

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

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


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

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


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

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


10.3.22-MariaDB-0+deb10u1
...
Рейтинг: 0 / 0
10.10.2020, 17:57
    #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
10.10.2020, 18:48
    #40007287
noindex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать максимальную скидку вычисляемой по двум столбцам?
Akina, мне не нужно выводить товар, мне нужно вывести мак сидку по таблице.
Запрос по моей таблице должен вернуть 50%, потому что это максимальная скидка, ваш пример тоже вернет 50 конечно, но order by тут как бы не в тему совсем...
Цена у товаров по факту разная, одинаковая цена для примера...
Вот еще пример, по нему должно вернуть 90
...
Рейтинг: 0 / 0
10.10.2020, 19:05
    #40007292
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать максимальную скидку вычисляемой по двум столбцам?
что мудрить
MAX((price-special_price)/price*100)
только 0 и NULL обработайте
...
Рейтинг: 0 / 0
10.10.2020, 19:37
    #40007299
noindex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать максимальную скидку вычисляемой по двум столбцам?
Alex_Ustinov, похоже то что нужно!
Спасибо!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как выбрать максимальную скидку вычисляемой по двум столбцам? / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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