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

Mysqlを2列でグループ化し、3番目の列の最大値を選択します

    クエリは問題ありません。 2000行を取得する理由は、値の一意のペアごとに1行を取得するためですuser_iditem_id

    各行に入るインタラクションタイプを確認するには、次を使用します。

    select user_id, item_id, max(interaction_type) as max_type,
           group_concat(distinct interaction_type) as interaction_types,
           count(*) as cnt
    from mytable
    group by user_id, item_id;
    

    最大のインタラクションタイプを持つすべての行が必要だと思います。その場合は、最大値を計算してから、その値に一致するすべての行を見つけます。

    select t.*
    from mytable t cross join
         (select max(interaction_type) as maxit from mytable) x
         on x.maxit = t.interaction_type;
    

    group byはありません このクエリにはが必要です。




    1. SQL Server Management Studioで複合キーを作成するにはどうすればよいですか?

    2. Laravelのデータベースからすべての親/子レコードを取得します(階層データ)

    3. mysqli_connect():(HY000 / 2002):ホスティングで接続がタイムアウトしました

    4. Postgres:値の合計を選択してから、これをもう一度合計します