Как использовать вывод SUM в новом столбце? - PullRequest
3 голосов
/ 21 декабря 2011

Моя таблица выглядит следующим образом:

Ride_distance    Ride_type
100              A         
50               B        
25               B       
25               C           
10               C          
40               A         
...              ...        

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

Tot_Type_A  Tot_Type_B  Tot_Type_C
140         75          35

Как я могу это сделать

Ответы [ 4 ]

3 голосов
/ 21 декабря 2011
  SELECT SUM(Ride_distance), Ride_type
    FROM your_table
GROUP BY Ride_type
2 голосов
/ 21 декабря 2011

Да, это возможно, но вы должны написать оператор case для каждого типа:

select 
 sum(case ride_type when 'A' then ride_distance else 0 end) as tot_type_A,
 sum(case ride_type when 'B' then ride_distance else 0 end) as tot_type_B,
 sum(case ride_type when 'C' then ride_distance else 0 end) as tot_type_C
from your_table
2 голосов
/ 21 декабря 2011

Начать с группы по:

SELECT SUM(Ride_distance),Ride_type FROM rides GROUP BY Ride_type

Если они должны быть в одном ряду, используйте pivot :

SELECT 'TotalRide' as Total_Ride_Length, [A], [B], [C]
FROM
(SELECT Ride_distance, Ride_type FROM rides) AS SourceTable
PIVOT (
    SUM(Ride_distance) FOR Ride_type IN ([A], [B], [C])
) AS PivotTable;
0 голосов
/ 21 декабря 2011

Использование PIVOT;

select 
    A as Tot_Type_A,
    B as Tot_Type_B,
    C as Tot_Type_C
from 
    dbo.the_table
pivot (
    sum(Ride_distance) for Ride_type in ([A],[B],[C])
) pvt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...