'Error near Group and order by while converting ORACLE query to Aurora DB MYSQL query

iam trying to convert following ORACLE query into Aurora DB MYSQL query. Changed few oracle functions to mysql functions.

SELECT MIN(TP.TP_ID) TP_ID,
       TC_GRP.TC_GRP_NB TC_GRP_NB,
       MIN(TC.TC_ID) TC_ID,
       MIN(TC.FAC_ID) FAC_ID,
       LISTAGG(TC_GST.TXN_IDVL_PTY_ID, ',') WITHIN GROUP (ORDER BY TC_GST.TXN_IDVL_PTY_ID) AS TXN_IDVL_PTY_ID
  FROM RES_MGMT.TP
 INNER JOIN RES_MGMT.TPS
    ON TPS.TP_ID = TP.TP_ID
 INNER JOIN RES_MGMT.TC_GRP
    ON TC_GRP.TPS_ID = TPS.TPS_ID
 INNER JOIN RES_MGMT.TC
    ON (TC.TC_GRP_NB = TC_GRP.TC_GRP_NB AND
       TC.TC_TYP_NM = 'AccommodationComponent' AND
       TC.TRVL_STS_NM = 'Booked' AND TC.UPGRD_TC_ID IS NULL)
 INNER JOIN RES_MGMT.TC_GST
    ON TC_GST.TC_ID = TC.TC_ID
 WHERE TC_GRP.ADV_INTERNT_CHKIN_IN = 'Y'
   AND TPS.SRC_ACCT_CTR_ID = 2
   AND TC.FAC_ID in (80010383)
   AND TRUNC(TC.TC_STRT_DTS) = TO_DATE('20210930', 'yyyyMMdd')
   AND EXISTS (SELECT *
                 FROM RES_MGMT.TC TC1
                WHERE TC1.TC_GRP_NB = TC.TC_GRP_NB
                  AND TC1.TC_TYP_NM = 'AdmissionComponent'
                  AND TC1.TRVL_STS_NM = 'Booked')
 GROUP BY TC_GRP.TC_GRP_NB;

MySQLQuery has modified as follows:

SELECT MIN(TP.TP_ID) TP_ID,
       TC_GRP.TC_GRP_NB TC_GRP_NB,
       MIN(TC.TC_ID) TC_ID,
       MIN(TC.FAC_ID) FAC_ID,
       LISTAGG(TC_GST.TXN_IDVL_PTY_ID, ',') WITHIN GROUP (ORDER BY TC_GST.TXN_IDVL_PTY_ID) AS TXN_IDVL_PTY_ID
  FROM RES_MGMT.TP
 INNER JOIN RES_MGMT.TPS
    ON TPS.TP_ID = TP.TP_ID
 INNER JOIN RES_MGMT.TC_GRP
    ON TC_GRP.TPS_ID = TPS.TPS_ID
 INNER JOIN RES_MGMT.TC
    ON (TC.TC_GRP_NB = TC_GRP.TC_GRP_NB AND
       TC.TC_TYP_NM = 'AccommodationComponent' AND
       TC.TRVL_STS_NM = 'Booked' AND TC.UPGRD_TC_ID IS NULL)
 INNER JOIN RES_MGMT.TC_GST
    ON TC_GST.TC_ID = TC.TC_ID
 WHERE TC_GRP.ADV_INTERNT_CHKIN_IN = 'Y'
   AND TPS.SRC_ACCT_CTR_ID = 2
   AND TC.FAC_ID in (80010385)
   AND DATE(TC.TC_STRT_DTS) = STR_TO_DATE('20210930', '%Y-%m-%d')
   AND EXISTS (SELECT *
                 FROM RES_MGMT.TC TC1
                WHERE TC1.TC_GRP_NB = TC.TC_GRP_NB
                  AND TC1.TC_TYP_NM = 'AdmissionComponent'
                  AND TC1.TRVL_STS_NM = 'Booked')
 GROUP BY TC_GRP.TC_GRP_NB;

Iam getting mysql syntax error near WITHIN GROUP.

Kindly suggest what need to be changed.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source