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

MySQL各一意の値の最初の出現時に行を選択します

    mysqlにはこのための「チート」があります:

    select *
    from mytable
    group by cid;
    

    mysqlではしないことができるので、必要なのはそれだけです。 grouped-by以外の列を集約します(他のデータベースは構文エラーをスローします)。この場合、group-by値ごとに最初に出現するものだけが出力されます。ただし、これは方法を保証するものではないことに注意してください ここで「最初の」発生が決定されます(行が読み込まれる方法になります)

    特定のが必要な場合 最初に出現し、最初に並べ替えてから、group-by cheatを適用します:

    select *
    from (
        -- order by the "time" column descending to get the "most recent" row
        select * from mytable order by time desc
        ) x
    group by cid
    


    1. mysql CONCAT()AS名?

    2. パラメータとしてのPostgres整数配列?

    3. SQLServerに汚い仕事をさせるのをやめなさい

    4. Oracle SQL DeveloperからExcelにデータをエクスポートする方法は?