Найти лучшую комбинацию из двух столбцов - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь найти лучшую комбинацию двух столбцов в данной схеме:

Имя таблицы: Sales

Столбцы: price, zip_code, color

В этомНапример, я хотел бы найти Наивысший объем продаж (определяется по цене) на основе лучшей комбинации zip_code и color.

Во всех попытках, которые я пробовал, кажется, что он делает действительно длинный цикл и просто находит все комбинации атрибутов.

Любая помощь будет принята:)

Редактировать:

Данные:

 price  |  zip_code | color
--------+-----------+--------
    11  |   1455    |   red
--------+-----------+--------
    2   |   1455    |   red
--------+-----------+--------
    12  |   1452    |   blue
--------+-----------+--------
    3   |   1451    |   pink
--------+-----------+--------
    4   |   1455    |   pink
--------+-----------+--------

Желаемый результат:

price   |  zip_code | color
--------+-----------+--------
   13   |   1455    |   red

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Если вам нужна только одна строка строки - даже если есть связи - тогда достаточно group by и limit:

select zip_code, color, sum(price) as total_sales
from Sales
group by zip_code, color
order by total_sales desc
limit 1;

Если вы хотите, чтобы все верхние строки были, то немного большенужна логика:

with zc as (
      select zip_code, color, sum(price) as total_sales
      from Sales
      group by zip_code, color
     )
select zc.*
from zc
where zc.total_sales = (select max(zc2.total_sales) from zc zc2);
0 голосов
/ 08 октября 2018

Вы хотите взять сумму всех продаж по почтовому индексу и цвету, а затем выбрать верхний ряд новой таблицы, упорядоченный по общим продажам в порядке убывания.Это выглядит так:

Select zip_code, color, sum(price) as total_sales
From Sales
Group by zip_code, color
Order by total_sales desc
limit 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...