显示其自己行中每个组的列总数

时间:2016-02-03 01:49:57

标签: sql sql-server tsql

我的select语句返回:

columnA ColumnB ColumnC DATE
"this"   5        3     
"this"   5        3      
"this"   5        3      
"that"   10       5     
"that"   10       5      
"that"   10       5

我需要我的选择才能返回此内容:

columnA ColumnB ColumnC DATE
"this"   5        3
"this"   5        3
"this"   5        3
Total    15       9
"that"   10       5
"that"   10       5
"that"   10       5
Total    30       15

我需要按A列进行分组,并在其自己的行中显示每个组的总计。日期填充在我的代码中。

我能想到的只是选择所有A列的可能性,然后循环遍历columnA名称,选择具有该列名称的全部,然后将这些列中的每一个联合起来。有一个更好的方法吗?

2 个答案:

答案 0 :(得分:0)

我认为您可以使用grouping sets执行此操作。但是,您没有每行的唯一标识符。所以,我认为这是逻辑:

with t as (
      select t.*, row_number() over (order by (select null)) as seqnum
      from (<your query here>) t
     )
select columnA, sum(columnB), sum(ColumnC)
from t
group by grouping sets((seqnum, columnA), (columnA));

答案 1 :(得分:0)

你可以试试这个,它会根据你的要求给出结果

sudo kill $(ps -aef | grep apache| awk '{print $2}')