我有一张如下表格
col1 col2 col3
i1 23 36
i2 48 21
i3 28 4
i4 349 12
…
…
i200 287 32
现在,如何获得如下结果
col1 col2 col3
i1 23 36
i2 48 21
i3 28 4
i4 349 12
>i4 (sum of (sum of remaining)
col2 remaining)
请帮帮我。 感谢
答案 0 :(得分:2)
您需要按计算字段进行分组,如下所示:
WITH cte (col1, col2, col3) AS (
SELECT
CASE
WHEN col1 IN ('i1','i2','i3','i4') THEN col1
ELSE '>i4'
END AS col1
, col2
, col3
FROM my_table
)
SELECT col1, SUM(col2) AS col2, SUM(col3) AS col3
FROM cte
GROUP BY col1
上述查询使用Common Table Expression (CTE)功能来避免多次指定相同的表达式。
答案 1 :(得分:1)
这可能会有所帮助
select col1,col2,col3 from dbo.t3 where col1<='i4'
union
select '>i4',SUM(col2),SUM(col3) from dbo.t3 where col1>'i4'