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

MySQL複数の列の値を条件付きで合計

    ユーザーが複数のAPPSを使用する場合 1つのデバイスでは、このクエリはAPPSを使用します usage_start_timeが最も高い行 :

    select  a.userid
    ,       sum(u.high_count)
    ,       sum(u.medium_count)
    from    apps a
    join    `usage` u
    on      u.appid = a.id
    join    (
            select  u.device_id
            ,       a.userid
            ,       max(a.usage_start_time) as max_start_time
            from    apps a
            join    `usage` u
            on      u.appid = a.id
            group by
                    u.device_id
            ,       a.userid
            ) filter
    on      filter.device_id = u.device_id
            and filter.userid = a.userid
            and filter.max_start_time = a.usage_start_time
    group by
            a.userid
    

    データセットでは、使用行5, 3, 4が選択されます ユーザー12の場合 。

    SQLFiddleで動作することを確認してください。



    1. SQL Serverで接続の照合を設定するにはどうすればよいですか?

    2. NoSQLにおけるDBAの役割

    3. ASCII()の例– MySQL

    4. 複数のテーブルの一意のID[MySQL]