|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
Всем доброго дня! Предположим таблица 3 столбца product_id, price (цена), cpecial_price (цена со скидкой) Как из таблицы выбрать максимальную скидку? В случае с таблицей на рисунке это 50% у product_id = 3 Когда-то давно делал нечто подобное, но не могу вспомнить как, гугл не помогает... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2020, 16:17 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
noindex, вообще-то максимальная скидка - по первому товару. Вам следует уточнить, что есть максимальная скидка, и что именно нужно получить - размер макс скидки или айди соответствующего товара. Итоговый результат также очень сильно может зависеть от версии mysql ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2020, 18:57 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
paver, select t.* from table having SKIDKA(t.) = max(SKIDKA(t.)) где SKIDKA(t.) - монотонно возрастающая функция от скидки, как вы ее определяете для каждой строки. (напр, сама скидка) Строчек может быть более одной, для строк с равными максимальными скидками. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2020, 20:17 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
НеофитSQL, Вы про ONLY_FULL_GROUP_BY читали? нет? так почитайте... стандарты соблюдать разумнее, чем пользоваться особенностями, которые могут и закончиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2020, 20:37 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
paver вообще-то максимальная скидка - по первому товару. Строго говоря да, но на деле цена со скидкой не может быть 0, это особенность приложения, в данном случае 0 в special_price тоже самое что и пустое поле. paver Вам следует уточнить, что есть максимальная скидка, и что именно нужно получить - размер макс скидки или айди соответствующего товара. Нужна максимальная скидка, столбец product_id ввел чтобы указать у кого макс скидка. paver Итоговый результат также очень сильно может зависеть от версии mysql 10.3.22-MariaDB-0+deb10u1 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 12:08 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Если при одинаковой макс. скидке надо вывести не один товар, а все - то RANK() в CTE по той же схеме. PS. Не понимаю, зачем искать минимальную цену среди РАЗНЫХ товаров, но с ОДНОЙ ценой... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 17:57 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
Akina, мне не нужно выводить товар, мне нужно вывести мак сидку по таблице. Запрос по моей таблице должен вернуть 50%, потому что это максимальная скидка, ваш пример тоже вернет 50 конечно, но order by тут как бы не в тему совсем... Цена у товаров по факту разная, одинаковая цена для примера... Вот еще пример, по нему должно вернуть 90 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 18:48 |
|
Как выбрать максимальную скидку вычисляемой по двум столбцам?
|
|||
---|---|---|---|
#18+
что мудрить MAX((price-special_price)/price*100) только 0 и NULL обработайте ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2020, 19:05 |
|
|
start [/forum/topic.php?fid=47&msg=40007073&tid=1828354]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 240ms |
0 / 0 |