Anu*_*thi 7 sql database select aggregate sql-server-2012
我有这个查询的结果
SELECT
myTable.Branch AS Branch,
myTable.Quarter AS Quarter,
SUM(myTable.Sales) AS Sales
FROM
myTable
GROUP BY
myTable.Branch,
myTable.Quarter
Branch Quarter Sales
B1 Q1 17
B1 Q2 7
B1 Q3 1
B1 Q4 8
B1 Q5 12
B2 Q1 8
B2 Q2 5
B2 Q3 2
B2 Q4 14
B2 Q5 17
Run Code Online (Sandbox Code Playgroud)
现在我想得到计算成员让我们说Q1-Q3结果应该是这样的
Branch Quarter Sales
B1 Q1 17
B1 Q2 7
B1 Q3 1
B1 Q4 8
B1 Q5 12
B1 Q1-Q3 16
B2 Q1 8
B2 Q2 5
B2 Q3 2
B2 Q4 14
B2 Q5 17
B2 Q1-Q3 6
Run Code Online (Sandbox Code Playgroud)
表达式可以是任何有效的算术表达式 (Q1+Q2-Q3)*2
尝试这个:
SELECT m.Branch, m.Quarter, m.Sales
FROM (SELECT m.Branch, m.Quarter, SUM(m.Sales) AS Sales
FROM myTable m
GROUP BY m.Branch, m.Quarter
UNION
SELECT m.Branch, 'Q1+Q3' AS `Quarter`, SUM(m.Sales) AS Sales
FROM myTable m
WHERE m.Quarter IN ('Q1', 'Q3')
GROUP BY m.Branch
) AS m
ORDER BY m.Branch, m.Quarter;
Run Code Online (Sandbox Code Playgroud)