DB2中CORRELATED和UNCORRELATED子查询之间的区别
子查询是一个嵌套查询。当此子查询仅执行一次并且此子查询的结果用于提取主查询中的数据时,这种子查询称为UNCORRELATED子查询。另一方面,当子查询每次执行都引用主查询时,则该子查询称为CORRELATED子查询。
例如,如果我们要从ORDERS表中提取所有ORDER_TOTAL大于总体平均值的订单,则可以使用下面的UNCORRELATED子查询。
示例
SELECT ORDER_ID FROM ORDERS WHERE ORDER_TOTAL > (SELECT AVG(ORDER_TOTAL) FROM ORDERS)
有一个DB2表ORDER_CHANNEL,其中存储可以通过其下订单的渠道,例如在线,代理商,AFFILIATE等。
如果要提取每个通道的最大数量的订单,则将使用下面的CORRELATED子查询。
示例
SELECT ORDER_ID, ORDER_CHANNEL, ORDER_TOTAL FROM ORDERS T1 WHERE ORDER_TOTAL IN (SELECT MAX (T2.ORDER_TOTAL) FROM ORDERS T2 WHERE T1.ORDER_CHANNEL_ID = T2.CHANNEL_ID GROUP BY T2.CHANNEL_ID)
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短