sql关联子查询

Posted 21座的胖子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql关联子查询相关的知识,希望对你有一定的参考价值。

原始表:

查询语句:

SELECT product_type,product_name,sale_price
FROM product p1
WHERE sale_price > 
(SELECT AVG(sale_price) 
FROM product p2 
WHERE p1.product_type = p2.product_type 
GROUP BY product_type)

查询结果:


结果显示的是每种类别下的商品中高于该类别平均价格的商品

执行顺序:

1.执行第二行的FROM product p1
2.执行第一行的SELECT product_tyoe,product_name,sale_price
12这两步查出来的是该表所有数据
3.执行第5行的FROM product p2
4.执行第6行的WHERE p1.product_type = p2.product_type
第4步的p1和p2是同一个表,但是这里p1.product_type是从步骤12搜索出来的表中依次取出每一个去p2进行匹配(比如这里取出p1.product_type是办公用品)
5.执行第7行的GROUP BY product_type
聚合出所有的种类下平均价格,用步骤12所有数据去和符合p1.product_type的平均值进行比较

以上是关于sql关联子查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL基础教程(第2版)第5章 复杂查询:5-3 关联子查询

oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用

SQL----关联子查询

6-SQL子查询

mssql sql高效关联子查询的update 批量更新

sql关联子查询