SQL 另一个 table 中数据总和的计算列

SQL computed column for sum of data in another table

我有两个 table:

  DiskUsage Table                               StatisticsTable
Server    DiskUsage(GB)                  Total Disk Usage        xxxx
   1         10
   2         212
   3         11

我需要将 "Total Disk Usage" 创建为一个列,用于计算 "DiskUsage" 列的总和。这需要是动态的,因为更多的服务器将超时添加到 "DiskUsage" table.

我对此进行了一些研究 - 我相信计算列是实现此目的的最简单方法,但我不确定如何 a)。参考其他 tables 数据或 b)。动态获取该列的总数。

创建 trigger

CREATE TRIGGER test
ON DiskUsage
after INSERT, UPDATE
AS
  BEGIN
      UPDATE StatisticsTable
      SET    TotalDiskUsage = (SELECT Sum(DiskUsage)
                               FROM   DiskUsage)
  END 

或者如 King.code 所述,创建视图而不是 table

CREATE VIEW StatisticsTable
AS
  SELECT Sum(DiskUsage)
  FROM   DiskUsage 

仅 运行 个查询有什么问题?

select sum(diskusage)
from diskusage;

这看起来很简单,除非您有数百万行,否则性能应该相当快。