【发布时间】:2026-02-02 01:35:01
【问题描述】:
我的数据库有以下情况:
id: | second id: | value
Row 1: 1 | 1 | 123
Row 2: 1 | 2 | 234
Row 3: 1 | 3 | 456
Row 4: 2 | 1 | 987
Row 5: 2 | 2 | 876
Row 6: 2 | 3 | 765
Row 7: 3 | 1 | 345
Row 8: 3 | 2 | 678
Row 9: 3 | 3 | 543
Row 10: 4 | 1 | 345
...
对于每个 id,我有 3 个第二个 id,它们总是 1,2 和 3。 我需要做的是获取这 3 个值的平均值(考虑 id 的 3 个值)并获取它们的平均值。我需要用一张长表来做这个(我想知道创建一个特定的视图来做这个)。
欢迎任何帮助。
(对不起我的问题,但我真的是 SQL Server 的初学者)
【问题讨论】:
-
我对 MSSQL 了解不多,但我知道 PostgreSQL 和 Oracle 都有窗口函数——即你可以调用
avg(value) over (partition by second_id),它会得到你想要的。 MSSQL 有这样的东西吗? -
我需要一个新行,使用每个 id 的 3 个值的平均值,作为我应该拥有的第一个 id:id: 1 |第二个ID:平均|值:271
-
对于第二个 id,我将拥有这个:id: 2 |第二个ID:平均|值:876
标签: sql sql-server average