我有这样的表:
Column1 Column2
type1 2
type1 5
type2 3
type3 4
type4 2
我只需要type1
和type2
分组,并将其显示为typeX
。像这样的东西:
Column1 Column2
typeX 10
type3 4
type4 2
我不知道该怎么做。
答案 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; `