SQL Server - группировка столбца и выбор значения Top 1 из другого столбца на основе столбца, который не включен в T-Sql - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть таблица с именем Product, которая содержит эти данные:

ParentProduct   Product   Runs  Units
-------------------------------------
    1               5      8     6
    1               5      8     6 
    1               3      7    10
    1               3      8    10
    2               4      8     5
    2               4      8     5

Теперь я хочу сгруппированные прогоны, основанные на группировке ParentProduct и Product.Результат будет:

Runs   Units
------------
8       16
8        5
7       10

Это означает, что внутренне наша логика должна группироваться на основе ParentProduct и Product и производить СУММ ЕДИНИЦ.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Группировка по Runs & ParentProduct для уникальных наборов также даст ожидаемый результат.

SELECT Runs, SUM(Units) as Units
FROM 
(
    SELECT DISTINCT ParentProduct, Product, Runs, Units 
    FROM Product
) AS p
GROUP BY Runs, ParentProduct
ORDER BY Runs DESC, ParentProduct ASC;
0 голосов
/ 27 сентября 2018
declare @products table(ParentProduct int, Product int, Runs int, Units int)
    insert into @products 
        select 1,   5,  8,  6 union all
        select 1,   5,  8,  6 union all
        select 1,   3,  7,  10 union all
        select 1,   3,  8,  10 union all
        select 2,   4,  8,  5 union all
        select 2,   4,  8,  5

select runs, units = sum(units)
from(
    select ParentProduct, product, runs, units = sum(distinct units)
    from @products
group by ParentProduct, product, runs) t
group by ParentProduct, runs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...