Как найти наименьшее значение из одного столбца, сгруппированного по SQL серверу - PullRequest
0 голосов
/ 07 мая 2020

Мне нужна помощь: я хочу включить это в отчет, но не знаю, как этого добиться.

Вот данные, хранящиеся в таблице:

Product  | Quantity |  Status  | Line
Product1      1        Active   1000
Product2      2        Active   2000
Product1      2        Active   3000
Product1      1        InDev    4000
Product2      2        Active   5000

Я группирую по Product и Status и суммирую Quantity.

Но также хочу получить наименьший номер строки для строки в группе.

Мой ожидаемый результат будет выглядеть как показано ниже:

Product  | Quantity |  Status  | Line
Product1      3        Active    1000
Product2      4        Active    2000
Product1      1        InDev     5000

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Это можно сделать, если вы group by Product, Status суммируете:

select Product, sum(Quantity) Quantity,  Status, min(Line) Line
from tablename
group by Product, Status
0 голосов
/ 07 мая 2020

Вы можете использовать оконную функцию:

select *
from (select t.*, row_number() over (partition by product, status order by line) as seq,
             sum(qty) over (partition by product, status) as sum_qty
      from table t
      ) t
where seq = 1;

Если в таблице есть только доступные столбцы (рассматриваемые), вы можете выполнить агрегирование:

select product, sum(qty), status, min(line) as line
from table t
group by product, status
order by line;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...