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

min(column)が他の列の正しいデータを返さない

    あなたがつかむ

    1. ID、
    2. そのIDの最低日、および
    3. 任意 それに伴う名前の。

    他の(通常の)データベースでは、このクエリも許可されません。 名前に集計関数を使用するように強制されます 、または名前を追加します group by 同じように。 MySQLは代わりにランダムな値を選択しますが、問題があります。

    これを解決するために、クエリは少し複雑になります:

    select
      t.id, 
      t.mydate,
      t.name
    from
      myTable t
    where
      t.mydate = 
        (select 
          min(td.mydate) 
        from 
          myTable td 
        where 
          td.id = t.id)
    

    または:

    select
      t.id, 
      t.mydate as date,
      t.name
    from
      myTable t
      inner join 
        (select 
          td.id
          min(td.mydate) as date
        from 
          myTable td 
        group by 
          td.id) tx on tx.id = t.id and tx.date = t.mydate
    


    1. 外部/リモート接続用にRaspberryPiでMySQLを開くにはどうすればよいですか?

    2. MySQL列がNOTNULLに設定されていますが、NULL値を許可しています

    3. 単一のクエリで再帰的なカテゴリ?

    4. PostgreSQLの「groupby」クエリで文字列フィールドの文字列を連結するにはどうすればよいですか?