SQL 数据库: 子查询和关联子查询
创建测试数据集:
子查询
子查询是一次性视图,将用来定义视图的SELECT语句直接用于FROM子句当中。
标量子查询
标量子查询(scalar subquery)必须且只能返回一行一列的结果,因此它的返回值可以用在 = 或者 <> 这样需要单一值的比较运算符之中。
例如,计算平均销售单价的标量子查询
接下来,实现查询销售价格大于均价的商品信息:
关联子查询
细分的组内进行比较时,需要使用关联子查询。
例如,查询商品中价格高于该类商品平均价格的商品信息
在关联子查询中存在关联名称和关联域两个概念,其中p1
和p2
就是关联名称,关联域也就是有效作用范围,例如,上述语句p2
的作用域仅限于内层查询,所以如果将WHERE p1.product_type = p2.product_type
查询条件转移至外层查询则会报错,即下面的语句:
版权声明: 本文为 InfoQ 作者【大规模数据处理学习者】的原创文章。
原文链接:【http://xie.infoq.cn/article/805fe0e94e99ca023d580e137】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论