1. 程式人生 > >TPC-H系列---5---TPC-H的22條查詢語句分析(Q6--Q8)

TPC-H系列---5---TPC-H的22條查詢語句分析(Q6--Q8)

 
Q6,預測收入變化查詢

Q6語句查詢得到某一年中通過變換折扣帶來的增量收入。這是典型的“what-if”判斷,用來尋找增加收入的途徑。預測收入變化查詢考慮了指定的一年中折扣在“DISCOUNT-0.01”和“DISCOUNT+0.01”之間的已運送的所有訂單,求解把l_quantity小於quantity的訂單的折扣消除之後總收入增加的數量。

Q6語句的特點是:帶有聚集操作的單表查詢操作。查詢語句使用了BETWEEN-AND操作符,有的資料庫可以對BETWEEN-AND進行優化。

Q6的查詢語句如下:

select

sum(l_extendedprice*l_discount) as revenue //潛在的收入增加量

from

lineitem //單表查詢

where

l_shipdate >= date '[DATE]' //DATE是從[1993, 1997]中隨機選擇的一年的1月1日

and l_shipdate < date '[DATE]' + interval '1' year //一年內

and l_discount between [DISCOUNT] - 0.01 and [DISCOUNT] + 0.01 //between

and l_quantity < [QUANTITY]; // QUANTITY在區間[24, 25]中隨機選擇


Q7,貨運盈利情況查詢

Q7語句是查詢從供貨商國家與銷售商品的國家之間通過銷售獲利情況的查詢。此查詢確定在兩國之間貨運商品的量用以幫助重新談判貨運合同。

Q7語句的特點是:帶有分組、排序、聚集、子查詢操作並存的多表查詢操作。子查詢的父層查詢不存在其他查詢物件,是格式相對簡單的子查詢。

Q7的查詢語句如下:

select

supp_nation, //供貨商國家

cust_nation, //顧客國家

l_year, sum(volume) as revenue //年度、年度的貨運收入

from ( //子查詢

select

n1.n_name as supp_nation,

n2.n_name as cust_nation,

extract(year from l_shipdate) as l_year,

l_extendedprice * (1 - l_discount) as volume

from

supplier,lineitem,orders,customer,nation n1,nation n2 //六表連線

where

s_suppkey = l_suppkey

and o_orderkey = l_orderkey

and c_custkey = o_custkey

and s_nationkey = n1.n_nationkey

and c_nationkey = n2.n_nationkey

and ( // NATION2和NATION1的值不同,表示查詢的是跨國的貨運情況

(n1.n_name = '[NATION1]' and n2.n_name = '[NATION2]')

or (n1.n_name = '[NATION2]' and n2.n_name = '[NATION1]')

)

and l_shipdate between date '1995-01-01' and date '1996-12-31'

) as shipping

group by

supp_nation,

cust_nation,

l_year

order by

supp_nation,

cust_nation,

l_year;


Q8,國家市場份額查詢

Q8語句是查詢在過去的兩年中一個給定零件型別在某國某地區市場份額的變化情況。

Q8語句的特點是:帶有分組、排序、聚集、子查詢操作並存的查詢操作。子查詢的父層查詢不存在其他查詢物件,是格式相對簡單的子查詢,但子查詢自身是多表連線的查詢。

Q8的查詢語句如下:

select

o_year, //年份

sum(case

when nation = '[NATION]'//指定國家,在TPC-H標準指定的範圍內隨機選擇

then volume

else 0

end) / sum(volume) as mkt_share //市場份額:特定種類的產品收入的百分比;聚集操作

from //子查詢

(select

extract(year from o_orderdate) as o_year, //分解出年份

l_extendedprice * (1-l_discount) as volume, //特定種類的產品收入

n2.n_name as nation

from

part,supplier,lineitem,orders,customer,nation n1,nation n2,region //八表連線

where

p_partkey = l_partkey

and s_suppkey = l_suppkey

and l_orderkey = o_orderkey

and o_custkey = c_custkey

and c_nationkey = n1.n_nationkey

and n1.n_regionkey = r_regionkey

and r_name = '[REGION]' //指定地區,在TPC-H標準指定的範圍內隨機選擇

and s_nationkey = n2.n_nationkey

and o_orderdate between date '1995-01-01' and date '1996-12-31' //只查95、96年的情況

and p_type = '[TYPE]' //指定零件型別,在TPC-H標準指定的範圍內隨機選擇

) as all_nations

group by //按年分組

o_year

order by //按年排序

o_year;

TPC-H標準定義了Q8語句等價的變形SQL,與上述查詢語句格式上基本相同,主要是目標列使用了不同的表達方式,在此不再贅述。

相關推薦

TPC-H系列---5---TPC-H的22查詢語句分析(Q6--Q8)

  Q6,預測收入變化查詢Q6語句查詢得到某一年中通過變換折扣帶來的增量收入。這是典型的“what-if”判斷,用來尋找增加收入的途徑。預測收入變化查詢考慮了指定的一年中折扣在“DISCOUNT-0.01”和“DISCOUNT+0.01”之間的已運送的所有訂單,求解把l_quantity小於quantity的

查詢語句是如何執行的

  資料庫的內建函式,儲存過程,檢視,觸發器都在server層 聯結器:連線之後如果沒有後續操作就屬於一個空閒連線,資料庫許可權也在這裡。 如果連線之後很長時間沒有後續操作,就會斷開連線,如果這時去查詢就會丟擲異常,長連線就是一直使用這個連線,短連線就是執行了幾次查詢就會斷開連線。 所以

SQL Server調優系列進階篇(查詢語句執行幾個指標值監測)

前言 上一篇我們分析了查詢優化器的工作方式,其中包括:查詢優化器的詳細執行步驟、篩選條件分析、索引項優化等資訊。 本篇我們分析在我們執行的過程中幾個關鍵指標值的檢測。 通過這些指標值來分析語句的執行問題,並且分析其優化方式。 通過本篇我們可以學習到調優中經常利用的幾個利器! 廢話少說,開始本篇的正題

01|基礎架構:一查詢語句的執行流程

cti 版本 innodb 語句 -h 分析 查看 執行器 架構模式 1. 基本架構   大體來說,MySQL可以分為Server層和存儲引擎兩部分。   Server層包括鏈接器,分析器,優化器,執行器等,涵蓋大多數核心服務功能,一般跨存儲引擎的功能都在這一層實現

mysql查詢語句分析 explain用法

表示 join 行數 請求 獨立 mysql 問題 完整 tab http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html Mysql Explain 詳解一.語法explain < table_

生成TPC-H資料集

下載tpc-h tool 版本有點老,2.14.3,夠用了。   在解壓的資料夾下面cd到dbgen下,找到makefile.suite。 ~/tpch_2_14_3$ cd dbgen~/tpch_2_14_3/dbgen$ vim makefile.suite----------

TPC-H資料匯入Hive方案

參考博文: https://blog.csdn.net/haoxiaoyan/article/details/53033870    -->在這篇博文中,前面步驟對我有很大幫助,但後面將tpc-h生成的資料匯入到hive的步驟,我沒用看懂,我會在後面介紹另外一種方案匯入資

greenDAO系列5--查詢

摘要 查詢就是返回符合一定條件的實體。可使用原始的SQL語句執行查詢;或是更好的方式,使用greenDAO中QueryBuilder的API。查詢支援懶載入,當操作較大的結果集時,便可節約記憶體、提高效能。

Linux環境下安裝TPC-H與資料匯入PostgreSQL

總共需要以下10個步驟,不包括QGEN部分(經過賦值的22個SQL語句參考附錄)。 1. 下載 TPC-H 官方工具包,地址:http://www.tpc.org/tpc_documents_current_versions/current_specifications.

Mac 編譯 TPC-H tools

0 下載 TPC-H Tools 1 修改 Makefile 解壓tpch檔案,進入dbgen目錄。 cp makefile.suite makefile 開啟 makefile,找到並修改下面這幾行(103~111 行) ########

[筆記] 大家一起來測試,benchmark起來(MySQL下的TPC-C,TPC-H,TPC-W)

前段時間在MySQL下做了些類基準測試,帖出小結。其中遇到許多小問題,不知道有遺漏步驟沒,也還有些問題沒解決,希望大家討論討論,一起測試起來吧,嘿嘿~環境:ubuntu9.10Server version: 5.1.37-1ubuntu5.4 (Ubuntu)一、TPC-

使用Data Lake Analytics + OSS分析CSV格式的TPC-H數據集

tdi mit key lag rand hone part exist any Data Lake Analytics(DLA)簡介關於Data Lake的概念,更多閱讀可以參考:https://en.wikipedia.org/wiki/Data_lake 以及AWS

SQL Server溫故系列(5):SQL 查詢之分組查詢 GROUP BY

1、GROUP BY 與聚合函式 2、GROUP BY 與 HAVING 3、GROUP BY 擴充套件分組 3.1、GROUP BY ROLLUP 3.2、GROUP BY CUBE 3.3、GROUP BY GROUPING SETS 4、GROUP BY 擴充套件函式 4.1、GROUPING

Swift新手教程系列5-函數+selector在swift中的使用方法

move 入口 http event use div 程序 解決 lin 原創blog。轉載請註明出處 近期在用swift寫代碼,盡管遇到一些問題,可是代碼量確實減了不少。 swfit新手教程系列會隨著我使用swfit中的積累,不斷地去修正更新 之前的教程 swift單

2017-5-24 分頁查詢,組合查詢

操作類 form first trim parameter emp use hashtable ack 分頁查詢 組合查詢 1.用到的實體類: public class ab { public int Ids { get; set; } publ

ACdream區域賽指導賽之手速賽系列(5) 題解

hello cor hang repeated exit p s -o inpu ans A - Problem A Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/

js入門5-字符的查詢與過濾 加上使用正則表達式

表達 indexof arch document string對象 查找 reg 則表達式 fun <h2>5.String對象:字符的查找與過濾</h2> <input type="text" id="txtString

C++遊戲系列5:不止有一件武器

location ref 初始 .text isalive urn lan dead then 很多其它見:C++遊戲系列文件夾 知識點:對象數組作為數據成員 改進:每一個角色所持有的武器不僅僅一件,故持有的武器,用了對象數組來表示,當然,也能

[js高手之路]深入淺出webpack教程系列5-插件使用之html-webpack-plugin配置(中)

logs 定義數據 ash con ack move lan ref min 上文我們講到了options的配置和獲取數據的方式,本文,我們繼續深入options的配置 一、html-webpack-plugin插件中的options除了自己定義了一些基本配置外,我們是可以

Django-website 程序案例系列-5 模態對話框實現提交數據

-i posit class one utf obj select val value html代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-