如何只按列的2行分组?

时间:2014-01-26 06:51:58

标签: c# sql sql-server linq entity-framework

我有这样的表:

Column1      Column2
 type1          2
 type1          5
 type2          3
 type3          4
 type4          2

我只需要type1type2分组,并将其显示为typeX。像这样的东西:

Column1      Column2
 typeX          10
 type3          4
 type4          2

我不知道该怎么做。

3 个答案:

答案 0 :(得分:2)

select (case when Column1 in ('type1','type2') then 'typeX' else Column1 end) as Column1,
    sum(Column2) as Column2 
from Table_Name 
group by (case when Column1 in ('type1','type2') then 'typeX' else Column1 end) 

答案 1 :(得分:2)

编辑:在这种情况下可以使用的查询如下所示。我使用Column1作为Type,使用Column2作为val

SELECT
    CASE WHEN Type in ('type1','type2') THEN 'typeX' 
        ELSE Type 
    END [Type],
    SUM(val) [Val] 
FROM Tab 
GROUP BY (CASE WHEN Type IN ('type1','type2') THEN 'typeX' ELSE Type END) 

以下是fiddle的答案。

答案 2 :(得分:-1)

GROUP BY多个列

我们也可以在多个列上使用GROUP BY语句,如下所示: 实施例

SELECT Shippers.ShipperName, Employees.LastName,
    COUNT(Orders.OrderID) AS NumberOfOrders
FROM ((Orders
    INNER JOIN Shippers
    ON Orders.ShipperID=Shippers.ShipperID)
    INNER JOIN Employees
    ON Orders.EmployeeID=Employees.EmployeeID)
GROUP BY ShipperName,LastName; `

enter link description here