Return-Path: <oracle-l-bounce@freelists.org>
X-Original-To: oracle-l@orafaq.com
Delivered-To: oracle-l@orafaq.com
Received: from smtp-ab.freelists.org (smtp-ab.freelists.org [34.228.148.125])
 by malta2546.startdedicated.com (Postfix) with ESMTPS id BE73B100323D43
 for <oracle-l@orafaq.com>; Thu,  2 Feb 2023 15:51:30 +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-ab.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id C0177400C8;
 Thu,  2 Feb 2023 14:51:29 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 95CB83FF85;
 Thu,  2 Feb 2023 14:51:29 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1675349489;
 bh=gZve337KvtM5CAPsjkrHazp2iXkmshYUZk0oHDTUS2E=;
 h=From:Sender:Sender:From;
 b=FkRvXv7JzoWOVRkgPFrTy13wSwJaArOMKlR2oy7ITc2GcfImIRrzG8kkb3Ft2sqd6
	 Ccs4yl4COrZt0Kxp6C18H6TwAQViGLXHTCgSaix2kj65ADjMMMxPPoHsPECteN15k5
	 wdurvv2J6Ipcn2x6jEBAqMLkK3hqK6CQMrPXEl4s=
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 4JHYQB_pjjl4; Thu,  2 Feb 2023 14:51:29 +0000 (UTC)
Received: from turing.freelists.org (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 42A8B46B2B;
 Thu,  2 Feb 2023 14:50:43 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freelists.org;
 s=turing; t=1675349487;
 bh=gZve337KvtM5CAPsjkrHazp2iXkmshYUZk0oHDTUS2E=;
 h=From:Sender:Sender:From;
 b=k9OQrA9IXmLh8dirq4/B4leZtdbeaveomaVdHkXhdsQyTGzcEZb7M6qMTxnompKMx
	 tDA2Z/k3QtHtR60JW5LtysruZwXW5nEItOLujoTe3KKX8KfaBSIRgq4UN9n7IVdHZH
	 tyW0//JzHKyQHKGFh73IAWE1CeFTxQNlX2N8EZbU=
Received: with ECARTIS (v1.0.0; list oracle-l); Thu, 02 Feb 2023 14:49:58 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Postfix) with ESMTP id 3F54546B23
 for <oracle-l@freelists.org>; Thu,  2 Feb 2023 14:49:58 +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=Lteuo/GD;
 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 yhmtNKU4v8CN for <oracle-l@freelists.org>;
 Thu,  2 Feb 2023 14:49:58 +0000 (UTC)
Received: from mail-oa1-f52.google.com (mail-oa1-f52.google.com [209.85.160.52])
 (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 09DFA3FF85
 for <oracle-l@freelists.org>; Thu,  2 Feb 2023 14:49:58 +0000 (UTC)
Received: by mail-oa1-f52.google.com with SMTP id 586e51a60fabf-1631b928691so2683910fac.11
        for <oracle-l@freelists.org>; Thu, 02 Feb 2023 06:49:57 -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=f3F1SbepgGvXOdeir05UV6OWuuMKtpGCDoVBDHU6J2I=;
        b=7pW3PG2HhWTaFRbk2ZdXT6eh1usXa2Ghdce0smj1fq1/hY1BhBZgheCVOD3rjz87OW
         u+PY4F4etWu9jY68KRBwTCS9ffijTFsuUMtNKrjd50M01j54jh+8jcyAplDxdBybe6tJ
         2y9XrYtNhq7AW2VfDfXF2s0+NJUW923qNDEH+CPrnbH286H/f1VGpGrBv2tegmYIUY+x
         S9z+pdVcelzA7S1NQrPiBxpITACN8z5QW2szoOGAPovbQe/CWzCRxjGB8TGN4OxPpZPI
         bxyIYpkioVYvp3vqmo3aUvdmA8dbXCGVPt/lT1oNSaDblpKhIIW5FmVYVjPY+caEn3GK
         qNBw==
X-Gm-Message-State: AO0yUKXmWN59D10gjmgsjyX7dMmUoo+mDLeKYY2Xy09bDDpRzDDo9g52
 xaDgsmFKE7i/dr8YrUQkbu15U7UkXD5PQOLPKPI=
X-Google-Smtp-Source: AK7set+Xjf5cs8qeXIjwGAXMvY8tmK/w8DjpXpY6OeVXmlkGla/aJl5RufVep+NcegMOyiJVbzek+DvKHdILesr+CXA=
X-Received: by 2002:a05:6870:e0ca:b0:163:8f96:9b34 with SMTP id
 a10-20020a056870e0ca00b001638f969b34mr324505oab.103.1675349397216; Thu, 02
 Feb 2023 06:49:57 -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>
 <CAP79kiTC1ZKFddK9=M-9YSc7Cgajy2HUNaGxkLiQ7g5vqYnkPA@mail.gmail.com>
In-Reply-To: <CAP79kiTC1ZKFddK9=M-9YSc7Cgajy2HUNaGxkLiQ7g5vqYnkPA@mail.gmail.com>
From: Kim Berg Hansen <kibeha@gmail.com>
Date: Thu, 2 Feb 2023 15:49:46 +0100
Message-ID: <CA+S=qd3BzMEy3SWhXw=o7ZgQgJffeu_S5XVvbuN89sYkq4DWMg@mail.gmail.com>
Subject: Re: Sanity Check - Correlated Select Subquery SQL rewrite equivalent?
 Or no?
To: christopherdtaylor1994@gmail.com
Cc: dombrooks@hotmail.com, "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="000000000000b2210e05f3b8ada9"
X-archive-position: 83509
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-to: oracle-l-bounce@freelists.org
X-original-sender: kibeha@gmail.com
Precedence: normal
Reply-To: kibeha@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
--000000000000b2210e05f3b8ada9
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

In the original subquery, the use of FPE.{something} makes the subquery
correlated - usually you would only correlate when using EXISTS, not when
using IN.

What happens because of the correlation basically seems to be, that the
subquery will select rows from F_PLAN (inner table), but *only* if FPE
(outer table) has either of two particular values in COL3.
*If* FPE.COL3 has those values, the subquery will either return 1 row
containing the ID from the outer FPE row, or zero rows if the F_PLAN table
is empty.
If on the other hand FPE.COL3 does *not *have those values, the subquery
returns zero rows.

Because of the correlation, this happens for each row in FPE - so the IN
evaluates as true if the subquery returns 1 row with the ID in question
(then it becomes FPE.ID =3D FPE.ID), but *not* true if the subquery returns=
 0
rows (then it becomes FPE.ID =3D NULL).

In total this is what the rewritten query emulates.
It returns those FPE rows where COL3 has the desired values, ID is not
null, and there exists at least one row in the F_PLAN table.
This does the same as the original.

Typically an IN subquery is used *not *correlated, like for example:

  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 (FPE2.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 FPE2

                WHERE FPE2.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>


Though that could perhaps better have been rewritten using analytic
functions (depending on circumstances.)

Cheerio
/Kim


Regards

Kim Berg Hansen
Oracle ACE Director

Author of Practical Oracle SQL
<https://www.apress.com/gp/book/9781484256169>
http://www.kibeha.dk
kibeha@kibeha.dk
@kibeha
<http://twitter.com/kibeha>


On Thu, Feb 2, 2023 at 3:15 PM Chris Taylor <
christopherdtaylor1994@gmail.com> wrote:

> @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 understan=
d
> 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 =
flight
> plan (even if for the same leg) we have a new row, and the select seeks t=
o
> 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%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%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%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%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%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%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%7C84df9e7fe9f640=
afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJ=
WIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7=
C%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%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> i=
s
> 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>
>
>
>
> 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 obviou=
s
>> 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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%=
7C%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%=
7C%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605540044%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%=
7C%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%=
7C%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%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%7C84df9e7fe9f64=
0afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8ey=
JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%=
7C%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.o=
utlook.com/?url=3Dhttps%3A%2F%2Fdbwhisperer.wordpress.com%2F&data=3D05%7C01=
%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7=
C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ=
QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DKRb7WaF=
r9WygzFaKIlO2adcfe2pXNgJQ3VzpVMl4Z7U%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%2Fora=
sql.org%2F&data=3D05%7C01%7C%7C40c1698e781f4d5ae91108db047569b1%7C84df9e7fe=
9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108674605696751%7CUnknown%7CTWFpbGZsb3=
d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000=
%7C%7C%7C&sdata=3D%2FkgXwMfPbJtaD6tkKVyxrEtyoIeLiCv75AfguRa1W5Q%3D&reserved=
=3D0>
>>
>>
>>
>

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

<div dir=3D"ltr">In the original subquery, the use of FPE.{something} makes=
 the subquery correlated - usually you would only correlate when using EXIS=
TS, not when using IN.<div><br></div><div>What happens because of the corre=
lation basically seems to be, that the subquery will select rows from F_PLA=
N (inner table), but <i>only</i> if FPE (outer table) has either of two par=
ticular values in COL3.</div><div><i>If</i> FPE.COL3 has those values, the =
subquery will either return 1 row containing the ID from the outer FPE row,=
 or zero rows if the F_PLAN table is empty.</div><div>If on the other hand =
FPE.COL3 does <i>not </i>have those values, the subquery returns zero rows.=
</div><div><br></div><div>Because of the correlation, this happens for each=
 row in FPE - so the IN evaluates as true if the subquery returns 1 row wit=
h the ID in question (then it becomes <a href=3D"http://FPE.ID">FPE.ID</a> =
=3D <a href=3D"http://FPE.ID">FPE.ID</a>), but <b>not</b> true if the subqu=
ery returns 0 rows (then it becomes <a href=3D"http://FPE.ID">FPE.ID</a> =
=3D NULL).</div><div><br></div><div>In total this is what the rewritten que=
ry emulates.</div><div>It returns those FPE rows where COL3 has the desired=
 values, ID is not null, and there exists at least one row in the F_PLAN ta=
ble.</div><div>This does the same as the original.</div><div><br></div><div=
>Typically an IN subquery is used <i>not </i>correlated, like for example:<=
/div><div><br></div><div><p class=3D"MsoNormal" style=3D"margin:0in;backgro=
und-image:initial;background-position:initial;background-size:initial;backg=
round-repeat:initial;background-origin:initial;background-clip:initial;font=
-size:11pt;font-family:Calibri,sans-serif"><span style=3D"font-size:10pt;fo=
nt-family:Consolas">=C2=A0 SELECT FPE.COL1,</span></p><p class=3D"MsoNormal=
" style=3D"margin:0in;background-image:initial;background-position:initial;=
background-size:initial;background-repeat:initial;background-origin:initial=
;background-clip:initial;font-size:11pt;font-family:Calibri,sans-serif"><sp=
an 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"margin:0in;background-image:initial;background-position:initial;backgro=
und-size:initial;background-repeat:initial;background-origin:initial;backgr=
ound-clip:initial;font-size:11pt;font-family:Calibri,sans-serif"><span styl=
e=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"margin:=
0in;background-image:initial;background-position:initial;background-size:in=
itial;background-repeat:initial;background-origin:initial;background-clip:i=
nitial;font-size:11pt;font-family:Calibri,sans-serif"><span style=3D"font-s=
ize: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://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 cl=
ass=3D"MsoNormal" style=3D"margin:0in;background-image:initial;background-p=
osition:initial;background-size:initial;background-repeat:initial;backgroun=
d-origin:initial;background-clip:initial;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"Mso=
Normal" style=3D"margin:0in;background-image:initial;background-position:in=
itial;background-size:initial;background-repeat:initial;background-origin:i=
nitial;background-clip:initial;font-size:11pt;font-family:Calibri,sans-seri=
f"><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"margin:0in;background-image:initial;background-position:initial;b=
ackground-size:initial;background-repeat:initial;background-origin:initial;=
background-clip:initial;font-size:11pt;font-family:Calibri,sans-serif"><spa=
n style=3D"font-size:10pt;font-family:Consolas">=C2=A0=C2=A0=C2=A0 FROM F_P=
LAN FPE</span></p><p class=3D"MsoNormal" style=3D"margin:0in;background-ima=
ge:initial;background-position:initial;background-size:initial;background-r=
epeat:initial;background-origin:initial;background-clip:initial;font-size:1=
1pt;font-family:Calibri,sans-serif"><span style=3D"font-size:10pt;font-fami=
ly:Consolas">=C2=A0=C2=A0 WHERE (<span style=3D"background:yellow"><a href=
=3D"https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Ffpe=
.id%2F&amp;data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C84df9e7fe=
9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CTWFpbGZsb3=
d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000=
%7C%7C%7C&amp;sdata=3DcWQlSnsYk3NZCzd3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&amp;re=
served=3D0" target=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"margin:0in;background-image:initial;background-posi=
tion:initial;background-size:initial;background-repeat:initial;background-o=
rigin:initial;background-clip:initial;font-size:11pt;font-family:Calibri,sa=
ns-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=
=C2=A0<span style=3D"background-image:initial;background-position:initial;b=
ackground-size:initial;background-repeat:initial;background-origin:initial;=
background-clip:initial"><span style=3D"background-color:yellow">MAX (</spa=
n><a href=3D"https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A=
%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C0b18ac90f2044325546f08db046a9261%7C=
84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638108628037188702%7CUnknown%7CT=
WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%=
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,204)"><span style=3D"background-color:rgb(252,229,=
205)">FPE2</span><span style=3D"background-color:yellow">.ID</span></span><=
/a><span style=3D"background-color:yellow">)</span></span></span></p><p cla=
ss=3D"MsoNormal" style=3D"margin:0in;background-image:initial;background-po=
sition:initial;background-size:initial;background-repeat:initial;background=
-origin:initial;background-clip:initial;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 style=3D"background-color:rgb(252,229,205)">=
FPE2</span></span></p><p class=3D"MsoNormal" style=3D"margin:0in;background=
-image:initial;background-position:initial;background-size:initial;backgrou=
nd-repeat:initial;background-origin:initial;background-clip:initial;font-si=
ze: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=C2=A0<span style=3D"background-imag=
e:initial;background-position:initial;background-size:initial;background-re=
peat:initial;background-origin:initial;background-clip:initial;background-c=
olor:rgb(252,229,205)">FPE2</span><span style=3D"background:yellow">.COL3</=
span>=C2=A0IN</span></p><p class=3D"MsoNormal" style=3D"margin:0in;backgrou=
nd-image:initial;background-position:initial;background-size:initial;backgr=
ound-repeat:initial;background-origin:initial;background-clip:initial;font-=
size:11pt;font-family:Calibri,sans-serif"><span style=3D"font-size:10pt;fon=
t-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"MsoN=
ormal" style=3D"margin:0in;background-image:initial;background-position:ini=
tial;background-size:initial;background-repeat:initial;background-origin:in=
itial;background-clip:initial;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"margin:0in;background=
-image:initial;background-position:initial;background-size:initial;backgrou=
nd-repeat:initial;background-origin:initial;background-clip:initial;font-si=
ze: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"margin:0i=
n;background-image:initial;background-position:initial;background-size:init=
ial;background-repeat:initial;background-origin:initial;background-clip:ini=
tial;font-size:11pt;font-family:Calibri,sans-serif"><span style=3D"font-siz=
e: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"margin:0in;background=
-image:initial;background-position:initial;background-size:initial;backgrou=
nd-repeat:initial;background-origin:initial;background-clip:initial;font-si=
ze:11pt;font-family:Calibri,sans-serif"><span style=3D"font-size:10pt;font-=
family:Consolas">ORDER BY=C2=A0<a href=3D"https://emea01.safelinks.protecti=
on.outlook.com/?url=3Dhttp%3A%2F%2Ffpe.id%2F&amp;data=3D05%7C01%7C%7C0b18ac=
90f2044325546f08db046a9261%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C638=
108628037188702%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzI=
iLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=3DcWQlSnsYk3NZCzd=
3Ab3Mq9ibclbXkAcHfL0OT85d6Io%3D&amp;reserved=3D0" target=3D"_blank" style=
=3D"color:rgb(5,99,193)"><span style=3D"color:rgb(17,85,204)">FPE.ID</span>=
</a></span></p></div><div><br></div><div><br></div><div>Though that could p=
erhaps better have been rewritten using analytic functions (depending on ci=
rcumstances.)</div><div><br></div><div>Cheerio</div><div>/Kim</div><div><br=
></div><div><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"=
ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div><br></div><div=
>Regards</div><div><br></div><div>Kim Berg Hansen</div><div>

<div>Oracle ACE Director<br></div></div><div><br></div><div>Author of=C2=A0=
<a href=3D"https://www.apress.com/gp/book/9781484256169" target=3D"_blank">=
Practical Oracle SQL</a><br></div><div><a href=3D"http://www.kibeha.dk" tar=
get=3D"_blank">http://www.kibeha.dk</a></div><div><a href=3D"mailto:kibeha@=
kibeha.dk" target=3D"_blank">kibeha@kibeha.dk</a></div><div><a href=3D"http=
://twitter.com/kibeha" target=3D"_blank">@kibeha<br></a></div></div></div><=
/div></div>
<br></div></div></div></div></div><br><div class=3D"gmail_quote"><div dir=
=3D"ltr" class=3D"gmail_attr">On Thu, Feb 2, 2023 at 3:15 PM Chris Taylor &=
lt;<a href=3D"mailto:christopherdtaylor1994@gmail.com">christopherdtaylor19=
94@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" =
style=3D"font-family:arial,helvetica,sans-serif">@Dominic /=C2=A0<a class=
=3D"gmail_plusreply" id=3D"m_-7830338513822564153m_8312154631531782030gmail=
-plusReplyChip-1">@Sayan=C2=A0<br></a><br>So my SQL skills have a strong we=
akness when it comes to understanding when/how to use EXISTS (NOT EXISTS) r=
egularly.=C2=A0 Can you help me understand by explaining how this rewrite i=
s equivalent when the first query uses 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"gmail_default" style=3D"font-family:aria=
l,helvetica,sans-serif"><br></div><div class=3D"gmail_default" style=3D"fon=
t-family:arial,helvetica,sans-serif">My lead developer mentions this:</div>=
<div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-seri=
f"><i>&quot;<span style=3D"font-family:Calibri,sans-serif;font-size:11pt">I=
f
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 border=3D"1" cellspacing=3D"0" cellpadding=3D"0" style=3D"border-collap=
se: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" sty=
le=3D"color:rgb(5,99,193)" target=3D"_blank"><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" sty=
le=3D"color:rgb(5,99,193)" target=3D"_blank"><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" style=
=3D"color:rgb(5,99,193)" target=3D"_blank"><span style=3D"color:rgb(17,85,2=
04)">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" style=3D"color:rgb(5,99,193)" target=3D"_bla=
nk"><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" style=3D"color:=
rgb(5,99,193)" target=3D"_blank"><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" style=3D"color:rgb(5,99,193)" tar=
get=3D"_blank"><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" style=3D"color:rgb(5,99,193)" =
target=3D"_blank"><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>
</blockquote></div>

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


