国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中使用SQL MODEL定義行間計算 (1)

2024-08-29 13:34:36
字體:
來源:轉載
供稿:網友
    利用 SQL MODEL 子句,您可以根據查詢結果定義多維數組,然后將規則應用于該數組以計算新值。這些規則可以是復雜的相互依靠的計算。與外部解決方案相比,通過將高級計算集成到數據庫中,可以大幅度提升性能、可伸縮性以及可治理性。 用戶可以將數據保留在 Oracle 環境內,而無需將數據復制到單獨的應用程序或 PC 電子表格中。 MODEL 子句通過將查詢列映射到以下三組來定義多維數組:分區列、維度列和度量列。這些元素執行以下任務: 分區以類似于分析函數的分區方式(在數據倉庫指南中標題為“數據倉庫中用于分析的 SQL”的一章中有述)來定義結果集的邏輯塊。將 MODEL 規則應用于每個分區的單元格。 維度用于標識分區內的每個度量單元格。這些列用于標識日期、區域以及產品名之類的特征。 度量類似于星型模式中事實表的度量。它們通常包含數值,例如銷售單位或成本。通過指定每個單元格的完整維度組合,可以在單元格所處的分區內對其進行訪問。 要針對這些多維數組創建規則,您需要定義以維度值形式表達的計算規則。規則靈活且簡潔,并且可以使用通配符和 FOR 循環,以最大限度地表達您的意圖。利用 MODEL 子句構建的計算通過將分析集成到數據庫中改善了傳統的電子表格計算,通過符號引用提高了可讀性,并提供了可伸縮性和更好的可治理性。 下圖使用假設的銷售表格從概念的角度概述了該模型的特征。該表格具有四列:國家/地區、產品、年份和銷售量。該圖分為三個部分。上段闡釋了將表格劃分為分區、維和度量三列的概念。中段給出了兩個假想規則,以猜測 PRod1 和 Prod2 的銷售,因為產品銷售的計算值來自前兩年。最后,第三部分顯示了將規則應用于這個包含假設數據的表格后得出的查詢輸出。黑色輸出是從數據庫檢索的數據,而藍色輸出表示根據規則計算出的行。請注重,這些規則是在每個分區內應用的。
映射到分區、維和度量的列COUNTRY PRODUCT YEAR SALES 分區 維度 維度 度量 規則: sales('prod1', 2002) = sales('prod1', 2000) + sales('prod1', 2001)sales('prod2', 2002) = sales('prod2', 2000) + sales('prod2', 2001)
MODEL 子句的輸出:
COUNTRY PRODUCT YEAR SALES 分區 維度 維度 度量 A prod1 2000 10 A prod1 2001 15 A prod2 2000 12 A prod2 2001 16 B prod1 2000 21 B prod1 2001 23 B prod2 2000 28 B prod2 2001 29 A prod1 2002 25 A prod2 2002 28 B prod1 2002 44 B prod2 2002 57
請注重,MODEL 子句沒有更新表格中的現有數據,也沒有向表格中插入新數據 要更改表格中的值,必須將模型結果提供給 INSERT、UPDATE 或 MERGE 語句。 案例 通過使用 MODEL 子句,您可以將電子表格計算引入數據庫。您將使用 Sales History 模式數據并通過包含新 MODEL 子句的 SELECT 語句來執行類似電子表格的計算。您需要標識規則,以找出諸如銷售猜測之類的信息。 前提條件 開始本教程之前,您應該: 1.完成了教程在 Windows 上安裝 Oracle 數據庫 10g。 2.下載 model_clause.zip 并將其解壓縮到您的工作目錄(例如,c:/wkdir) 設置示例數據 使用 SH 模式創建視圖。該視圖將按國家/地區提供產品銷售的年度總計(總款和總量),并跨所有渠道進行聚集。 1.啟動一個 SQL*Plus 會話。選擇開始 > 程序 > Oracle-OraDB10g_home > application Development > SQL Plus。 (注重:本教程假設您擁有 c:/wkdir 文件夾。假如沒有,則需要創建此文件夾,并將 model_clause.zip 的內容解壓縮到此文件夾中。當執行這些腳本時,指定路徑)
Oracle中使用SQL MODEL定義行間計算 (1)(圖一)
2.以 SH 用戶的身份登錄。輸入 SH 作為 User Name,并輸入 SH 作為 PassWord。然后單擊 OK。
Oracle中使用SQL MODEL定義行間計算 (1)(圖二)
3.首先,確保環境簡潔。從 SQL*Plus 會話運行 cleanup.sql 腳本。 @c:/wkdir/cleanup.sql cleanup.sql 腳本包含以下內容: DROP VIEW sales_view;DROP TABLE dollar_conv;DROP TABLE growth_rate;DROP TABLE ledger;
Oracle中使用SQL MODEL定義行間計算 (1)(圖三)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德惠市| 开阳县| 扶沟县| 融水| 洛南县| 巴南区| 苏州市| 洛浦县| 凤山县| 百色市| 修武县| 桦川县| 丰原市| 盐边县| 竹北市| 南江县| 本溪市| 合水县| 安徽省| 梅州市| 贵南县| 广河县| 贺兰县| 梁河县| 绿春县| 清苑县| 枞阳县| 黑山县| 清水县| 宁南县| 灌云县| 佛教| 长岭县| 溧水县| 镇雄县| 上蔡县| 石屏县| 宣恩县| 高唐县| 保康县| 湘潭县|