TPC-H系列---4---TPC-H的22条查询语句分析

 
Q3,运送优先级查询

Q3语句查询得到收入在前10位的尚未运送的订单。在指定的日期之前还没有运送的订单中具有最大收入的订单的运送优先级(订单按照收入的降序排序)和潜在的收入(潜在的收入为l_extendedprice * (1-l_discount)的和)。

Q3语句的特点是:带有分组、排序、聚集操作并存的三表查询操作。查询语句没有从语法上限制返回多少条元组,但是TPC-H标准规定,查询结果只返回前10行(通常依赖于应用程序实现)。

Q3的查询语句如下:

select

l_orderkey,

sum(l_extendedprice*(1-l_discount)) as revenue, //潜在的收入,聚集操作

o_orderdate,

o_shippriority

from

customer, orders, lineitem //三表连接

where

c_mktsegment = '[SEGMENT]' //在TPC-H标准指定的范围内随机选择

and c_custkey = o_custkey

and l_orderkey = o_orderkey

and o_orderdate < date '[DATE]' //指定日期段,在在[1995-03-01, 1995-03-31]中随机选择

and l_shipdate > date '[DATE]'

group by //分组操作

l_orderkey, //订单标识

o_orderdate, //订单日期

o_shippriority //运输优先级

order by //排序操作

revenue desc, //降序排序,把潜在最大收入列在前面

o_orderdate;


Q4,订单优先级查询

Q4语句查询得到订单优先级统计值。计算给定的某三个月的订单的数量,在每个订单中至少有一行由顾客在它的提交日期之后收到。

Q4语句的特点是:带有分组、排序、聚集操作、子查询并存的单表查询操作。子查询是相关子查询。

Q4的查询语句如下:

select

o_orderpriority, //订单优先级

count(*) as order_count //订单优先级计数

from orders //单表查询

where

o_orderdate >= date '[DATE]'

and o_orderdate < date '[DATE]' + interval '3' month //指定订单的时间段--某三个月,DATE是在1993年1月和1997年10月之间随机选择的一个月的第一天

and exists ( //子查询

select

*

from

lineitem

where

l_orderkey = o_orderkey

and l_commitdate < l_receiptdate

)

group by //按订单优先级分组

o_orderpriority

order by //按订单优先级排序

o_orderpriority;


Q5,某地区供货商为公司带来的收入查询

Q5语句查询得到通过某个地区零件供货商而获得的收入(收入按sum(l_extendedprice * (1 -l_discount))计算)统计信息。可用于决定在给定的区域是否需要建立一个当地分配中心。

Q5语句的特点是:带有分组、排序、聚集操作、子查询并存的多表连接查询操作。

Q5的查询语句如下:

select

n_name,

sum(l_extendedprice * (1 - l_discount)) as revenue //聚集操作

from

customer,orders,lineitem,supplier,nation,region //六表连接

where

c_custkey = o_custkey

and l_orderkey = o_orderkey

and l_suppkey = s_suppkey

and c_nationkey = s_nationkey

and s_nationkey = n_nationkey

and n_regionkey = r_regionkey

and r_name = '[REGION]' //指定地区,在TPC-H标准指定的范围内随机选择

and o_orderdate >= date '[DATE]' //DATE是从1993年到1997年中随机选择的一年的1月1日

and o_orderdate < date '[DATE]' + interval '1' year

group by //按名字分组

n_name

order by //按收入降序排序,注意分组和排序子句不同

revenue desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值