gpt4 book ai didi

sql-server - 内连接的 SQL 替代方案

转载 作者:行者123 更新时间:2023-12-01 06:23:56 25 4
gpt4 key购买 nike

我有一个表,其中的数据显示为:

Staion  Date        Temperature
A 2015-07-31 8
B 2015-07-31 6
C 2015-07-31 8
A 2003-02-21 4
B 2003-02-21 7
C 2003-02-21 7

对于每个日期,我需要创建数组以使其具有以下组合:
c1 = (A + B)/2, c2 = (A + B + C)/3 and c3 = (B + C)/2

对,我在做三种不同的 inner join在 table 上做最后的 inner join以实现以下结果:
Date         c1    c2      c3
2015-07-31 7 7.33 7
2003-02-21 5.5 6 7

有没有更干净的方法来做到这一点?

最佳答案

不需要 JOIN ,你可以简单地使用 GROUP BY和聚合函数:

WITH CTE AS
(
SELECT [Date],
MIN(CASE WHEN Staion = 'A' THEN Temperature END) A,
MIN(CASE WHEN Staion = 'B' THEN Temperature END) B,
MIN(CASE WHEN Staion = 'C' THEN Temperature END) C
FROM dbo.YourTable
GROUP BY [date]
)
SELECT [Date],
(A+B)/2 c1,
(A+B+C)/3 c2,
(B+C)/2 c3
FROM CTE;

关于sql-server - 内连接的 SQL 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43545194/

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