Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from smtp-aa.freelists.org (smtp-aa.freelists.org [23.23.80.81])
 by malta2546.startdedicated.com (Postfix) with ESMTPS id 24904100315748
 for <oracle-l@orafaq.com>; Thu,  2 Feb 2023 15:15:45 +0100 (CET)
Received: from turing.freelists.org (turing [10.0.0.164])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by smtp-aa.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id B35B24013B;
 Thu,  2 Feb 2023 14:15:43 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 844343FF53;
 Thu,  2 Feb 2023 14:15:43 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1675347343;
 bh=itxiAWxubjtmCYAoe4/2HP1CpUAPm5608cw9y2v/W1c=;
 h=From:Sender:Sender:From;
 b=BTY698VNthxN2CN5mIAawN+FcSDudlpT8ry/ZzUvI59f4GbHh465mZe03uP3dr9/z
	 CD9VmDhgkJzzZ4zIA7aPYLws/rnn2w8k63QnWxKwo7hk14H8YFlT09EcRuZxwXfYpJ
	 6qqEO+Aofy5mPUOAsZC7dVMT8p10Hs9cC7BEDz1Y=
X-Virus-Scanned: by FreeLists at turing.freelists.org
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id pwGCueOUMBX0; Thu,  2 Feb 2023 14:15:43 +0000 (UTC)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 8413E48D3F;
 Thu,  2 Feb 2023 14:14:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1675347341;
 bh=itxiAWxubjtmCYAoe4/2HP1CpUAPm5608cw9y2v/W1c=;
 h=From:Sender:Sender:From;
 b=IbpZThhRAGWEoEB5HWr1wGBINlULdWlkr0JvOiMfXeZVE8dHWHRnpUKrAZRLmokQ/
	 dg+xZNzvxcrs/tVN0kDUORmHHO+wpfskhUwAO0jnBQm4IlSrZae6CB1cHR9x+Kq+sm
	 OizExmbsDjQHTa90TEi4q33k3Xvmez4GOGOnYLWI=
Received: with ECARTIS (v1.0.0; list oracle-l); Thu, 02 Feb 2023 14:14:12 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 7E30A3FEF9
 for <oracle-l@freelists.org>; Thu,  2 Feb 2023 14:14:12 +0000 (UTC)
Authentication-Results: turing.freelists.org;
 dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=aYWFfq8l;
 dkim-atps=neutral
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id jnwEeBOZjxsT for <oracle-l@freelists.org>;
 Thu,  2 Feb 2023 14:14:12 +0000 (UTC)
Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by turing.freelists.org (Postfix) with ESMTPS id 38FCD3FEF8
 for <oracle-l@freelists.org>; Thu,  2 Feb 2023 14:14:12 +0000 (UTC)
Received: by mail-ed1-f50.google.com with SMTP id eq11so2126429edb.6
        for <oracle-l@freelists.org>; Thu, 02 Feb 2023 06:14:12 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20210112;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=0CVwNejNnwBTmh6xCu69HAwml9m0Zm7zrmuT9UXtnfA=;
        b=rGDJluGxXWTQ8EmdH5k/2tE7gmrd3D+Up9BdAEXhf/vO0mEAdN2F/1SlPmC5r4NuD5
         cMAbjRZra7rqxq60YEdgT4z9/yDdK8ujRd5y4PI699AZHt3QvdN2tViTSDPFHquu5ZQ9
         DqvagSQaH2jcwwhK6s9KQko3WlLtoT5mlujAYYjqnENsEDpo5pfjaUNf/hjfyC8OvEft
         wanaFdBCcmhuW88kprA3SgkO5RnpztdjcvmKTauvOKbDLxq+uRxcYK3uozLn8jyNcNa0
         kEQj3v1ezyWYF0CAlA6NHT0Yi9fV/LuXMmtvlX/M3XpzGQ9xnt+Od/wD+LA6iZiVBf9M
         7Zvg==
X-Gm-Message-State: AO0yUKU4HgZtN+CD+clKZraAt6C1V9sTnpuIZCei3ZSoyOSsNaVJuwK5
 dM2Cu/sgQ+vNyJIonFE1yorKsgcTfraeq9nlYYM=
X-Google-Smtp-Source: AK7set9BUPIMSY6QBgwzSN3FjzUOfPyQepsNaLbeMQfz4DTyEfjP8mV2ScpX3LkaxfjFdy16xrUl0Up5YlHdBu0czAg=
X-Received: by 2002:a05:6402:22ee:b0:4a2:1d19:ca14 with SMTP id
 dn14-20020a05640222ee00b004a21d19ca14mr1991678edb.68.1675347250976; Thu, 02
 Feb 2023 06:14:10 -0800 (PST)
MIME-Version: 1.0
References: <CAP79kiTvBreRt2j0=nBR-eU2GJwQeA4b2cHwhfto8HtWdB1hpA@mail.gmail.com>
 <DBAPR02MB6470626AF9B60E413B41AABCA1D19@DBAPR02MB6470.eurprd02.prod.outlook.com>
 <CO1PR19MB4984C370FF84533362A0C4459BD19@CO1PR19MB4984.namprd19.prod.outlook.com>
 <4c0f1b49-7605-7b4d-1567-b072a749081e@gmail.com> <CAOVevU5qtFDQEn-vR=u23qXbyhtCfNVVS=gsE7fzBvZ8CHsQ-g@mail.gmail.com>
 <DBAPR02MB6470AF6D84576CE25CD8F874A1D19@DBAPR02MB6470.eurprd02.prod.outlook.com>
In-Reply-To: <DBAPR02MB6470AF6D84576CE25CD8F874A1D19@DBAPR02MB6470.eurprd02.prod.outlook.com>
From: Chris Taylor <christopherdtaylor1994@gmail.com>
Date: Thu, 2 Feb 2023 09:13:59 -0500
Message-ID: <CAP79kiTC1ZKFddK9=M-9YSc7Cgajy2HUNaGxkLiQ7g5vqYnkPA@mail.gmail.com>
Subject: Re: Sanity Check - Correlated Select Subquery SQL rewrite equivalent?
 Or no?
To: dombrooks@hotmail.com
Cc: "xt.and.r@gmail.com" <xt.and.r@gmail.com>, "gogala.mladen@gmail.com" <gogala.mladen@gmail.com>,
 "oracle-l@freelists.org" <oracle-l@freelists.org>
Content-Type: multipart/alternative; boundary="000000000000c51c0705f3b82d26"
X-archive-position: 83508
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: christopherdtaylor1994@gmail.com
Precedence: normal
Reply-To: christopherdtaylor1994@gmail.com
List-Help: <mailto:ecartis@freelists.org?Subject=help>
List-Unsubscribe: <mailto:oracle-l-request@freelists.org?Subject=unsubscribe>
List-software: Ecartis version 1.0.0
List-Id: oracle-l <oracle-l.freelists.org>
X-List-ID: oracle-l <oracle-l.freelists.org>
List-Subscribe: <mailto:oracle-l-request@freelists.org?Subject=subscribe>
List-Owner: <mailto:>
List-post: <mailto:oracle-l@freelists.org>
List-Archive: <https://www.freelists.org/archive/oracle-l>
X-list: oracle-l
--000000000000c51c0705f3b82d26
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

@Dominic / @Sayan

So my SQL skills have a strong weakness when it comes to understanding
when/how to use EXISTS (NOT EXISTS) regularly.  Can you help me understand
by explaining how this rewrite is equivalent when the first query uses a
MAX function?

(I hate that I have to ask but I'm having a hard time understanding how
this works out)

My lead developer mentions this:
*"If I=E2=80=99m not mistaken this is a table where for every single new fl=
ight
plan (even if for the same leg) we have a new row, and the select seeks to
get the latest.*

*Both of your versions do not cater for the latest version, right?"*

What's killing me is that the MAX() function in the original is referencing
the outer table which breaks my brain.
(I'm trying to work through it myself as well to understand)

Original

Rewritten

  SELECT FPE.COL1,

         FPE.COL2,

         FPE.COL3,

         FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&reserved=3D0>
,

         FPE.COL4,

         FPE.VERSION

    FROM F_PLAN FPE

   WHERE (FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&reserved=3D0>
 IN

              (SELECT MAX (FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&reserved=3D0>
)

                 FROM F_PLAN

                WHERE FPE.COL3 IN

                          ('some_guid_id_1',

                           'some_guid_id_2')

              )

          )

ORDER BY FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&reserved=3D0>



SELECT FPE.COL1,
       FPE.COL2,
       FPE.COL3,
       FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
,
       FPE.COL4,
       FPE.VERSION
FROM F_PLAN FPE
WHERE FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
is
not null
 and exists (SELECT 0 FROM F_PLAN)
 and FPE.COL3 IN ('some_guid_id_1','some_guid_id_2')
ORDER BY FPE.ID
<https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640af=
b435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWI=
joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%=
7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>



Thanks,


Chris


On Wed, Feb 1, 2023 at 12:00 PM Dominic Brooks <dombrooks@hotmail.com>
wrote:

> Oh good spot =E2=80=93 the FPE. Alias within MAX(FPE.ID) seems so obvious=
 now....
> how did I miss it =F0=9F=98=8A
>
>
>
>
>
> *From: *Sayan Malakshinov <xt.and.r@gmail.com>
> *Sent: *01 February 2023 16:57
> *To: *gogala.mladen@gmail.com
> *Cc: *oracle-l@freelists.org
> *Subject: *Re: Sanity Check - Correlated Select Subquery SQL rewrite
> equivalent? Or no?
>
>
>
> Since that subquery has no any columns from F_PLAN nor predicates by
> columns from F_PLAN, we can rewrite original
>
>   SELECT FPE.COL1,
>          FPE.COL2,
>          FPE.COL3,
>          FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3D65mR53YTMHUZdLJhWpm%2FNsMkXaFC5%2BRm8v3S5Xn%2FTJw%3D&reserved=
=3D0>
> ,
>          FPE.COL4,
>          FPE.VERSION
>     FROM F_PLAN FPE
>    WHERE (FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3D65mR53YTMHUZdLJhWpm%2FNsMkXaFC5%2BRm8v3S5Xn%2FTJw%3D&reserved=
=3D0>
> IN
>               (SELECT MAX (*FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3D65mR53YTMHUZdLJhWpm%2FNsMkXaFC5%2BRm8v3S5Xn%2FTJw%3D&reserved=
=3D0>*
> )
>                  FROM F_PLAN
>                 WHERE* FPE.COL3* IN
>                           ('some_guid_id_1',
>                            'some_guid_id_2')))
> ORDER BY FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
>
>
>
> as
>
>
>
> SELECT FPE.COL1,
>        FPE.COL2,
>        FPE.COL3,
>        FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
> ,
>        FPE.COL4,
>        FPE.VERSION
> FROM F_PLAN FPE
> WHERE FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
> is not null
>  and exists (SELECT 0 FROM F_PLAN)
>  and FPE.COL3 IN ('some_guid_id_1','some_guid_id_2')
> ORDER BY FPE.ID
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.=
id%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%7C&sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&reserved=3D0>
>
>
>
> On Wed, Feb 1, 2023 at 4:42 PM Mladen Gogala <gogala.mladen@gmail.com>
> wrote:
>
> On 2/1/23 11:19, Clay Jackson (Clay.Jackson) wrote:
>
> What Dominic said =E2=80=93
>
>
>
> Among other things =E2=80=93
>
>
>
> where FPE.COL3 =3D T1.COL3
>
>
>
> is NOT part of the predicate in the original query
>
>
>
> Not only that, the 2nd query doesn't have MAX function in it, thereby
> being definitely not equivalent. I would probably try to separate the
> subquery into a WITH clause, materialize and do join.
>
> Regards
>
> --
>
> Mladen Gogala
>
> Database Consultant
>
> Tel: (347) 321-1217
>
> https://dbwhisperer.wordpress.com <https://emea01.safelinks.protection.ou=
tlook.com/?url=3Dhttps%3A%2F%2Fdbwhisperer.wordpress.com%2F&data=3D05%7C01%=
7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C=
1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ=
IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DKRb7WaFr=
9WygzFaKIlO2adcfe2pXNgJQ3VzpVMl4Z7U%3D&reserved=3D0>
>
>
>
>
> --
>
> Best regards,
> Sayan Malakshinov
>
> Oracle performance tuning engineer
>
> Oracle ACE
> http://orasql.org
> <https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Foras=
ql.org%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9=
f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d=
8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%=
7C%7C%7C&sdata=3D%2FkgXwMfPbJtaD6tkKVyxrEtyoIeLiCv75AfguRa1W5Q%3D&reserved=
=3D0>
>
>
>

--000000000000c51c0705f3b82d26
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:arial,helvetica,sans-serif">@Dominic /=C2=A0<a class=3D"gmail_plus=
reply" id=3D"m_8312154631531782030gmail-plusReplyChip-1">@Sayan=C2=A0<br></=
a><br>So my SQL skills have a strong weakness when it comes to understandin=
g when/how to use EXISTS (NOT EXISTS) regularly.=C2=A0 Can you help me unde=
rstand by explaining how this rewrite is equivalent when the first query us=
es a MAX function?=C2=A0=C2=A0<br><br>(I hate that I have to ask but I&#39;=
m having a hard time understanding how this works out)</div><div class=3D"g=
mail_default" style=3D"font-family:arial,helvetica,sans-serif"><br></div><d=
iv class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif"=
>My lead developer mentions this:</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif"><i>&quot;<span style=3D"font-fa=
mily:Calibri,sans-serif;font-size:11pt">If
I=E2=80=99m not mistaken this is a table where for every single new flight =
plan (even
if for the same leg) we have a new row, and the select seeks to get the lat=
est.</span></i><p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;fo=
nt-family:Calibri,sans-serif"><i>Both
of your versions do not cater for the latest version, right?&quot;</i></p><=
br>What&#39;s killing me is that the MAX() function in the original is refe=
rencing the outer table which breaks my brain.=C2=A0</div><div class=3D"gma=
il_default" style=3D"font-family:arial,helvetica,sans-serif">(I&#39;m tryin=
g to work through it myself as well to understand)</div><div class=3D"gmail=
_default" style=3D"font-family:arial,helvetica,sans-serif"><br></div><div c=
lass=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif"><ta=
ble class=3D"gmail-MsoTableGrid" border=3D"1" cellspacing=3D"0" cellpadding=
=3D"0" style=3D"border-collapse:collapse;border:none">
 <tbody><tr>
  <td width=3D"420" valign=3D"top" style=3D"width:314.7pt;border:1pt solid =
windowtext;padding:0in 5.4pt">
  <p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Cal=
ibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">Origin=
al</span></p>
  </td>
  <td width=3D"426" valign=3D"top" style=3D"width:319.5pt;border-top:1pt so=
lid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid wi=
ndowtext;border-left:none;padding:0in 5.4pt">
  <p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Cal=
ibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">Rewrit=
ten</span></p>
  </td>
 </tr>
 <tr>
  <td width=3D"420" valign=3D"top" style=3D"width:314.7pt;border-right:1pt =
solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid w=
indowtext;border-top:none;padding:0in 5.4pt">
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0 SELECT
  FPE.COL1,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  FPE.COL2,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  FPE.COL3,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"https://emea0=
1.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=
=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640afb435aaaa=
aaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wL=
jAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;s=
data=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&amp;reserved=3D0" tar=
get=3D"_blank" style=3D"color:rgb(5,99,193)"><span style=3D"color:rgb(17,85=
,204)">FPE.ID</span></a>,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  FPE.COL4,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  FPE.VERSION</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0 FROM F_PLAN FPE</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0 WHERE (<span style=3D"background:yellow"><a href=3D"https://emea0=
1.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=
=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640afb435aaaa=
aaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wL=
jAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;s=
data=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&amp;reserved=3D0" tar=
get=3D"_blank" style=3D"color:rgb(5,99,193)"><span style=3D"color:rgb(17,85=
,204)">FPE.ID</span></a></span>=C2=A0IN</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  (SELECT <span style=3D"background:yellow">MAX (<a href=3D"https://emea01.=
safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D0=
5%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe9f640afb435aaaaaaaa=
aaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM=
DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=
=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&amp;reserved=3D0" target=
=3D"_blank" style=3D"color:rgb(5,99,193)"><span style=3D"color:rgb(17,85,20=
4)">FPE.ID</span></a>)</span></span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0
  FROM F_PLAN</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0
  WHERE <span style=3D"background:yellow">FPE.COL3</span> IN</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
  (&#39;some_guid_id_1&#39;,</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0
  &#39;some_guid_id_2&#39;)</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
 )</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0)</span></p>
  <p class=3D"MsoNormal" style=3D"background-image:initial;background-posit=
ion:initial;background-size:initial;background-repeat:initial;background-or=
igin:initial;background-clip:initial;margin:0in;font-size:11pt;font-family:=
Calibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">ORD=
ER BY=C2=A0<a href=3D"https://emea01.safelinks.protection.outlook.com/?url=
=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C0b18ac90f2044325546f08db0=
46a9261%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CU=
nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC=
JXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL=
0OT85d6Io%3D&amp;reserved=3D0" target=3D"_blank" style=3D"color:rgb(5,99,19=
3)"><span style=3D"color:rgb(17,85,204)">FPE.ID</span></a></span></p>
  <p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Cal=
ibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas">=C2=A0=
</span></p>
  </td>
  <td width=3D"426" valign=3D"top" style=3D"width:319.5pt;border-top:none;b=
order-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid w=
indowtext;padding:0in 5.4pt">
  <p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Cal=
ibri,sans-serif"><span style=3D"font-size:10pt;font-family:Consolas;backgro=
und-image:initial;background-position:initial;background-size:initial;backg=
round-repeat:initial;background-origin:initial;background-clip:initial">SEL=
ECT
  FPE.COL1,</span><span style=3D"font-size:10pt;font-family:Consolas"><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL2,</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL3,</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0 =C2=A0 =C2=A0 =C2=A0</span></span><span style=
=3D"font-size:10pt;font-family:Consolas"><a href=3D"https://emea01.safelink=
s.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7=
C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1=
%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQI=
joiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5U=
FcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4XXPY%3D&amp;reserved=3D0" target=3D"_blan=
k" style=3D"color:rgb(5,99,193)"><span style=3D"color:rgb(17,85,204);backgr=
ound-image:initial;background-position:initial;background-size:initial;back=
ground-repeat:initial;background-origin:initial;background-clip:initial">FP=
E.ID</span></a></span><span style=3D"font-size:10pt;font-family:Consolas;ba=
ckground-image:initial;background-position:initial;background-size:initial;=
background-repeat:initial;background-origin:initial;background-clip:initial=
">,</span><span style=3D"font-size:10pt;font-family:Consolas"><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL4,</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.VERSION</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">FROM F_PLAN FPE</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">WHERE=C2=A0</span></span><span style=3D"font-size:10pt=
;font-family:Consolas"><a href=3D"https://emea01.safelinks.protection.outlo=
ok.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d=
5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63810867460=
5696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI=
6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauNsvCR=
bq3ARLaoRQSfAob4XXPY%3D&amp;reserved=3D0" target=3D"_blank" style=3D"color:=
rgb(5,99,193)"><span style=3D"color:rgb(17,85,204);background-image:initial=
;background-position:initial;background-size:initial;background-repeat:init=
ial;background-origin:initial;background-clip:initial">FPE.ID</span></a></s=
pan><span style=3D"font-size:10pt;font-family:Consolas;background-image:ini=
tial;background-position:initial;background-size:initial;background-repeat:=
initial;background-origin:initial;background-clip:initial">=C2=A0is not nul=
l</span><span style=3D"font-size:10pt;font-family:Consolas"><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0and exists (SELECT 0 FROM F_PLAN)</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">=C2=A0and FPE.COL3 IN
  (&#39;some_guid_id_1&#39;,&#39;some_guid_id_2&#39;)</span><br>
  <span style=3D"background-image:initial;background-position:initial;backg=
round-size:initial;background-repeat:initial;background-origin:initial;back=
ground-clip:initial">ORDER BY=C2=A0</span></span><span style=3D"font-size:1=
0pt;font-family:Consolas"><a href=3D"https://emea01.safelinks.protection.ou=
tlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781=
f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63810867=
4605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB=
TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauNs=
vCRbq3ARLaoRQSfAob4XXPY%3D&amp;reserved=3D0" target=3D"_blank" style=3D"col=
or:rgb(5,99,193)"><span style=3D"color:rgb(17,85,204);background-image:init=
ial;background-position:initial;background-size:initial;background-repeat:i=
nitial;background-origin:initial;background-clip:initial">FPE.ID</span></a>=
</span></p>
  </td>
 </tr>
</tbody></table>

<p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Calib=
ri,sans-serif">=C2=A0</p><p class=3D"MsoNormal" style=3D"margin:0in;font-si=
ze:11pt;font-family:Calibri,sans-serif">Thanks,</p><p class=3D"MsoNormal" s=
tyle=3D"margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><br></p><=
p class=3D"MsoNormal" style=3D"margin:0in;font-size:11pt;font-family:Calibr=
i,sans-serif">Chris</p><br></div></div><br><div class=3D"gmail_quote"><div =
dir=3D"ltr" class=3D"gmail_attr">On Wed, Feb 1, 2023 at 12:00 PM Dominic Br=
ooks &lt;<a href=3D"mailto:dombrooks@hotmail.com" target=3D"_blank">dombroo=
ks@hotmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex"><div>





<div lang=3D"EN-GB">
<div>
<p class=3D"MsoNormal">Oh good spot =E2=80=93 the FPE. Alias within MAX(<a =
href=3D"http://FPE.ID" target=3D"_blank">FPE.ID</a>) seems so obvious now..=
.. how did I miss it
<span style=3D"font-family:&quot;Segoe UI Emoji&quot;,sans-serif">=F0=9F=98=
=8A</span></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm">
<p class=3D"MsoNormal" style=3D"border:none;padding:0cm"><b>From: </b><a hr=
ef=3D"mailto:xt.and.r@gmail.com" target=3D"_blank">Sayan Malakshinov</a><br=
>
<b>Sent: </b>01 February 2023 16:57<br>
<b>To: </b><a href=3D"mailto:gogala.mladen@gmail.com" target=3D"_blank">gog=
ala.mladen@gmail.com</a><br>
<b>Cc: </b><a href=3D"mailto:oracle-l@freelists.org" target=3D"_blank">orac=
le-l@freelists.org</a><br>
<b>Subject: </b>Re: Sanity Check - Correlated Select Subquery SQL rewrite e=
quivalent? Or no?</p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal">Since that subquery has no any columns from F_PLAN n=
or predicates by columns from F_PLAN, we can rewrite original<u></u><u></u>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
=C2=A0 SELECT FPE.COL1,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL2,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL3,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://emea01.safelinks.prote=
ction.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c=
1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C=
638108674605540044%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2lu=
MzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3D65mR53YTMHUZ=
dLJhWpm%2FNsMkXaFC5%2BRm8v3S5Xn%2FTJw%3D&amp;reserved=3D0" target=3D"_blank=
">FPE.ID</a>,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL4,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.VERSION<br>
=C2=A0 =C2=A0 FROM F_PLAN FPE<br>
=C2=A0 =C2=A0WHERE (<a href=3D"https://emea01.safelinks.protection.outlook.=
com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae=
91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C63810867460554=
0044%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik=
1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3D65mR53YTMHUZdLJhWpm%2FNsMk=
XaFC5%2BRm8v3S5Xn%2FTJw%3D&amp;reserved=3D0" target=3D"_blank">FPE.ID</a>
 IN<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (SELECT MAX (<b><a href=3D=
"https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id=
%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f6=
40afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8e=
yJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C=
%7C%7C&amp;sdata=3D65mR53YTMHUZdLJhWpm%2FNsMkXaFC5%2BRm8v3S5Xn%2FTJw%3D&amp=
;reserved=3D0" target=3D"_blank">FPE.ID</a></b>)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0FROM F_PLAN<b=
r>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 WHERE<b> FPE.COL3</=
b> IN<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 (&#39;some_guid_id_1&#39;,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0&#39;some_guid_id_2&#39;)))<br>
ORDER BY <a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3D=
http%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db0475=
69b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnkn=
own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV=
CI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAo=
b4XXPY%3D&amp;reserved=3D0" target=3D"_blank">
FPE.ID</a></span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal">as<u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
SELECT FPE.COL1,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL2,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL3,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0<a href=3D"https://emea01.safelinks.protection.o=
utlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e78=
1f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C6381086=
74605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJ=
BTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauN=
svCRbq3ARLaoRQSfAob4XXPY%3D&amp;reserved=3D0" target=3D"_blank">FPE.ID</a>,=
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.COL4,<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0FPE.VERSION<br>
FROM F_PLAN FPE<br>
WHERE <a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3Dhtt=
p%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b=
1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown=
%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6=
Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAob4X=
XPY%3D&amp;reserved=3D0" target=3D"_blank">
FPE.ID</a> is not null<br>
=C2=A0and exists (SELECT 0 FROM F_PLAN)<br>
=C2=A0and FPE.COL3 IN (&#39;some_guid_id_1&#39;,&#39;some_guid_id_2&#39;)<b=
r>
ORDER BY <a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3D=
http%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db0475=
69b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnkn=
own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV=
CI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3Dv4j5UFcyATdPbEaoauNsvCRbq3ARLaoRQSfAo=
b4XXPY%3D&amp;reserved=3D0" target=3D"_blank">
FPE.ID</a></span><u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal">On Wed, Feb 1, 2023 at 4:42 PM Mladen Gogala &lt;<a =
href=3D"mailto:gogala.mladen@gmail.com" target=3D"_blank">gogala.mladen@gma=
il.com</a>&gt; wrote:<u></u><u></u></p>
</div>
<blockquote style=3D"border-top:none;border-right:none;border-bottom:none;b=
order-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin-left:4=
.8pt;margin-right:0cm">
<div>
<div>
<p class=3D"MsoNormal">On 2/1/23 11:19, Clay Jackson (Clay.Jackson) wrote:<=
u></u><u></u></p>
</div>
<blockquote style=3D"margin-top:5pt;margin-bottom:5pt">
<div>
<p class=3D"MsoNormal">What Dominic said =E2=80=93
</p>
<p class=3D"MsoNormal">=C2=A0</p>
<p class=3D"MsoNormal">Among other things =E2=80=93
</p>
<p class=3D"MsoNormal">=C2=A0</p>
<p class=3D"MsoNormal" style=3D"text-indent:36pt">
<span lang=3D"FR">where FPE.COL3 =3D T1.COL3</span></p>
<p class=3D"MsoNormal"><span lang=3D"FR">=C2=A0</span></p>
<p class=3D"MsoNormal"><span lang=3D"FR">is NOT part of the predicate in th=
e original query =C2=A0</span></p>
<p class=3D"MsoNormal">=C2=A0</p>
</div>
</blockquote>
<p>Not only that, the 2nd query doesn&#39;t have MAX function in it, thereb=
y being definitely not equivalent. I would probably try to separate the sub=
query into a WITH clause, materialize and do join.</p>
<p>Regards<u></u><u></u></p>
<pre>-- </pre>
<pre>Mladen Gogala</pre>
<pre>Database Consultant</pre>
<pre>Tel: (347) 321-1217</pre>
<pre><a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3Dhttp=
s%3A%2F%2Fdbwhisperer.wordpress.com%2F&amp;data=3D05%7C01%7C%7C40c1698e781f=
4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674=
605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBT=
iI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DKRb7WaFr9WygzFaKIlO2a=
dcfe2pXNgJQ3VzpVMl4Z7U%3D&amp;reserved=3D0" target=3D"_blank">https://dbwhi=
sperer.wordpress.com</a></pre>
</div>
</blockquote>
</div>
<p class=3D"MsoNormal"><br clear=3D"all">
<u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
<p class=3D"MsoNormal">-- <u></u><u></u></p>
<div>
<div>
<div>
<div>
<div>
<p class=3D"MsoNormal">Best regards,<br>
Sayan Malakshinov<u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt">Oracle performance tu=
ning engineer</span><u></u><u></u></p>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal">Oracle ACE<br>
<a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2=
F%2Forasql.org%2F&amp;data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%=
7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7=
CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn=
0%3D%7C3000%7C%7C%7C&amp;sdata=3D%2FkgXwMfPbJtaD6tkKVyxrEtyoIeLiCv75AfguRa1=
W5Q%3D&amp;reserved=3D0" target=3D"_blank">http://orasql.org</a><u></u><u><=
/u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>

</div></blockquote></div></div>

--000000000000c51c0705f3b82d26--

--
http://www.freelists.org/webpage/oracle-l



