Sql server 行和转置中的列总数(SQL server)

Sql server 行和转置中的列总数(SQL server),sql-server,transpose,totals,Sql Server,Transpose,Totals,我有以下数据集: Account|Can|Fra|scl| 1012 0 10 1 1011 5 10 0 如何首先按行中的每列获取总计: Account|Can|Fra|scl| 1012 0 10 1 1011 5 10 0 Total 5 20 1 然后将其转置,使其看起来像这样: Can 5 Fra 20 Scl 1 这个查询应该对您有所帮助。这将避免不必要的中间步骤。您可以通过下面的查询直接得到最终结果

我有以下数据集:

Account|Can|Fra|scl|
1012    0    10   1
1011    5    10   0
如何首先按行中的每列获取总计:

Account|Can|Fra|scl|
1012    0    10   1
1011    5    10   0
Total   5    20   1
然后将其转置,使其看起来像这样:

Can 5
Fra 20
Scl 1

这个查询应该对您有所帮助。这将避免不必要的中间步骤。您可以通过下面的查询直接得到最终结果

SELECT 'CAN' AS COUNTRY, SUM(CAN) AS COUNTVAL FROM MY_TABLE
UNION ALL
SELECT 'FRA' AS COUNTRY, SUM(FRA) AS COUNTVAL FROM MY_TABLE
UNION ALL
SELECT 'SCL' AS COUNTRY, SUM(SCL) AS COUNTVAL FROM MY_TABLE

如果要获取每列的总数,可以使用:

SELECT ACCOUNT, CAN, FRA,SCL FROM MY_TABLE
UNION ALL
SELECT 'TOTAL' AS ACCOUNT, SUM(CAN) AS CAN, SUM(FRA) AS FRA, SUM(SCL) AS SCL 
       FROM MY_TABLE