GBase 8s SQL 指南:语法 南大通用数据技术股份有限公司 1531 网格查询中的聚集表达式 网格查询中的聚集表达式要求发出网格查询的数据库服务器从多网格服务器组合 聚集结果。 网格查询是在数据库服务器的限定的行上返回逻辑 UNION 或 UNION ALL 的分 布式 SELECT 语句,这些表在 GBase 8s 网格的数据库中有相同的模式。在 GRID 子句 主题和在 GBase 8s Enterprise Replication 指南 中描述网格查询。 网格查询中的聚集表达式要求发出该网格查询的数据库服务器组合来自多网格服 务器的聚集结果。由于您指定的网格查询转换为跨多网格服务器的 UNION 或 UNION ALL 查询,因此,在指定的网格或区域内在每一参与的服务器上独立地 计算每一聚集。将这些单独的聚集返回到发出该网格查询的数据库服务器,其计 算它们的组合的 UNION 或 UNION ALL 值。 为了从这些单独的聚集计算全局的聚集,该网格查询必须是子查询。例如,假设 我们想要查看东南地区(下列示例中的 SW_USA)的总销售额和平均销售额。因 为如果在该网格内跨数据集的限定的行值的数目不同,则采用平均组的平均值是 不正确的,因此正确的网格查询需要类似这样: SELECT SUM(amt) AS total_sales , SUM(amt) / SUM(cnt) AS avg_sale FROM ( SELECT COUNT(*) cnt, SUM(amt) amt FROM sales GRID ALL 'SW_USA' );