gpt4 book ai didi

sql - 如何计算列成员数据库表的算术表达式?

转载 作者:太空狗 更新时间:2023-10-30 01:47:45 28 4
gpt4 key购买 nike

我有这个查询的结果

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

现在我想计算成员让我们说 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

表达式可以是任何有效的算术表达式,如(Q1+Q2-Q3)*2

最佳答案

您可以创建一个表,其中 Q1、Q2、Q3、Q4 作为每个分支的列:

http://sqlfiddle.com/#!6/eca51/14/0

SELECT
Branch,
SUM(CASE WHEN quarter='Q1' THEN sales END) AS Q1,
SUM(CASE WHEN quarter='Q2' THEN sales END) AS Q2,
SUM(CASE WHEN quarter='Q3' THEN sales END) AS Q3,
SUM(CASE WHEN quarter='Q4' THEN sales END) AS Q4
FROM
sales
GROUP BY Branch

这给出:

| BRANCH | Q1 | Q2 | Q3 | Q4 |
|--------|----|----|----|----|
| B1 | 17 | 7 | 1 | 8 |
| B2 | 8 | 5 | 2 | 13 |

您可以将其用作子查询并执行您喜欢的任何算术。

SELECT Branch, Q1+2*Q2 AS Weighted,SQRT(Q1*Q2) GeometricMean
FROM (
SELECT
Branch,
SUM(CASE WHEN quarter='Q1' THEN sales END) AS Q1,
SUM(CASE WHEN quarter='Q2' THEN sales END) AS Q2,
SUM(CASE WHEN quarter='Q3' THEN sales END) AS Q3,
SUM(CASE WHEN quarter='Q4' THEN sales END) AS Q4
FROM
sales
GROUP BY Branch) AS BQ

这给出:

| BRANCH | WEIGHTED |   GEOMETRICMEAN |
|--------|----------|-----------------|
| B1 | 31 | 10.908712114636 |
| B2 | 18 | 6.324555320337 |

这取决于已知和固定的季度数 - 我猜有 4 个,但你似乎有 5 个。

关于sql - 如何计算列成员数据库表的算术表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20757858/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com