Функция заказа Mysql - PullRequest
       13

Функция заказа Mysql

1 голос
/ 26 марта 2019

У меня проблема с функцией группировки.
Моя таблица mysql:

Product    Color       Sellout
Test1       white       80%
Test2       Red         70%
Test1       Red         90%
Test3       Black       50%

Мне нужно, чтобы заказ был распродан, но сгруппирован по названию и цвету продуктов.
Как:

Test1     Red       90%
Test1     White     80%
Test2     Red       70%
Test3     Black     50%

Пожалуйста, помогите мне, я думаю, это просто, но я схожу с ума!

Ответы [ 4 ]

1 голос
/ 26 марта 2019

Я думаю, что вы пытаетесь сделать несколько заказов. Попробуйте что-то вроде этого:

ORDER BY Sellout DESC, Product, Color

или

ORDER BY Product, Color, Sellout DESC
1 голос
/ 26 марта 2019

Распродажа не существует в предложении GROUP-BY. Таким образом, он должен использоваться функциями агрегирования. MIN () является одним из них и является довольно легкой операцией.

Смотри ниже.

SELECT Product, Color, MIN(Sellout) AS _SELLOUT_
FROM MY_MYSQL_TABLE
GROUP BY Product, Color
ORDER BY _SELLOUT_ DESC
0 голосов
/ 27 марта 2019

Если я применяю этот запрос, это нормально, только если данные не такие:

Тест цветовой оценки продукта1 белый 80% тест2 красный 70% тест1 красный 90% тест3 черный 50% тест3 красный 99%

Результат должен быть

Тест цветовой оценки продукта3 Красный 99% Тест3 Черный 50% Тест1 Красный 90% Тест1 белый 80% Тест2 Красный 70%

0 голосов
/ 26 марта 2019

Не зная структуры вашей таблицы, я бы сказал, что то, что вы называете сгруппированным, это просто еще один порядок, например

SELECT Product, Color, Sellout
FROM Table
ORDER BY Product, Sellout DESC

Результат:

Test1     Red       90%
Test1     White     80%
Test2     Red       70%
Test3     Black     50%

С помощью GROUP BY вы «складываете» строки с одинаковыми значениями из столбца группировки и применяете функцию агрегирования (например, SUM) для всех других (выбранных) столбцов.

Группировка по запросу и результату выглядит следующим образом:

SELECT Product, AVG(Sellout)
FROM Table

Результат:

Test1     85
Test2     70
Test3     50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...