合并SQL查询结果

时间:2016-09-01 13:06:34

标签: tsql

我有以下情况。以这种格式返回结果的查询:

N1   || 10 || 5    
N2   || 20 || 9    
N3   || 5  || 4

通过一些无法修复的错误,N3的名称与N1不同,但它们应该相同。我希望将第1行和第3行组合在一起,使它们成为:

N1 || 15 || 9 

所以我想合并第1行和第3行。使用常规矩阵表示法,所需的输出等于:

M(1,1) || M(1,2)+M(3,2) || M(1,3)+M(3,3).

由于数据库不允许这样做,我无法定义临时表来存储结果。有没有办法达到理想的输出?

1 个答案:

答案 0 :(得分:1)

您可以将现有查询用作内联视图,使用GROUP BY折叠行。只需使用一个用'N1'替换'N3'的表达式。

y0=np.hstack((y_init, m_init))

注意:替换 SELECT IF(q.name1='N3','N1',q.name1) AS name1 , SUM(q.val2) AS val2 , SUM(q.val3) AS val3 FROM ( -- put here the query query that returns resultset -- -- name1 val2 val3 -- ----- ---- ---- -- N1 10 5 -- N2 20 9 -- N3 5 4 -- SELECT ... AS name1 , ... AS val2 , ... AS val3 FROM ... ) q GROUP BY IF(q.name1='N3','N1',q.name1) ORDER BY 1 name1val2以匹配内联视图中查询返回的列名。