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 祝福语驱散霉运的话简短