WEB开发网
开发学院数据库MSSQL Server SQL 2008数据仓库可扩展性 阅读

SQL 2008数据仓库可扩展性

 2008-09-28 10:06:42 来源:WEB开发网   
核心提示: 如果没有GROUPING SETS ,那么你要获得这个结果就必须运行多个查询,SQL 2008数据仓库可扩展性(6),或者使用UNION ALL 组合这些查询,以便获得一个结果集,MERGE 语句有三个WHEN 条件子句,使你可以对结果集中的一个给定记录执行一个专门的DML动作:对于同时存

如果没有GROUPING SETS ,那么你要获得这个结果就必须运行多个查询,或者使用UNION ALL 组合这些查询,以便获得一个结果集。而有了GROUPING SETS ,你的查询可以使用如下表达式:

SELECT D.CalendarYear, D.CalendarQuarter, T.SalesTerritoryCountry
 , SUM(F.SalesAmount) AS SalesAmount
FROM dbo.FactResellerSales F 
 INNER JOIN dbo.DimTime D ON F.OrderDateKey = D.TimeKey
 INNER JOIN dbo.DimSalesTerritory T ON
  F.SalesTerritoryKey = T.SalesTerritoryKey
WHERE D.CalendarYear IN (2003,2004)
GROUP BY GROUPING SETS (
  (CalendarYear, CalendarQuarter, SalesTerritoryCountry)
 , (CalendarYear, CalendarQuarter) 
 , () )
ORDER BY D.CalendarYear, D.CalendarQuarter, T.SalesTerritoryCountry
 Country   
 Canada Mexico USA   
 2007 Q1 1000 1000 5000 7000  
 2007 Q2 1000 1000 6000 8000  
 2007 Q3 1200 1300 7000 9500  
 2007 Q4 1300 1400 8000 10700  
Grand Total: 35200 

GROUPING SETS 所提供的简洁性和性能优势随着可分组数目的增加,越发明显。

MERGE

MERGE 语句允许你在一个Transact-SQL 语句中对一个表或视图执行多个数据库操纵语言(DML)进行操作(INSERT、UPDATE和DELETE)。目标数据表或视图与一个数据源联接起来,这些DML操作将在该联接的结果之上执行。MERGE 语句有三个WHEN 条件子句,使你可以对结果集中的一个给定记录执行一个专门的DML动作:

对于同时存在于目标表和源表中的每一条记录,WHEN MATCHED 条件子句允许你对目标表中的给定记录执行UPDATE或DELETE操作。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:SQL 数据 仓库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接