sql >> データベース >  >> RDS >> Mysql

Oracleで同様の値を取得する方法

    これがMySQLで機能するソリューションです。 select句で相関サブクエリを使用して、連結をグループ化しますCol2 値。ロジックは、同じCol1を共有するレコードの特定のグループについて、現在の行以下の値のみを集計することです。 値。

    SELECT
        Col1,
        (SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
         WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
    FROM yourTable t1
    ORDER BY
        t1.Col1,
        t1.Col2;
    

    デモ

    Oracleでの同じクエリは次のとおりです。

    SELECT
        Col1,
        (SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
         WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
    FROM yourTable t1
    ORDER BY
        t1.Col1,
        t1.Col2;
    

    デモ

    実際の変更は、LISTAGGを置き換えることだけであることに注意してください。 GROUP_CONCATの場合 。



    1. Oracle:2つの日付を減算し、結果の分を取得する方法

    2. MysqlはintをMACに変換します

    3. SQL Server SELECTLASTN行

    4. mysqlを使用して入力パラメーターと出力パラメーターを使用してEntityFrameworkCoreでストアドプロシージャを呼び出す方法