Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Maior aparência de um valor dentro de cada grupo


Eu introduzi uma tabela temporária apenas para tornar as coisas um pouco mais fáceis de ler. Você certamente pode substituir essa consulta em linha e eliminar a tabela temporária, se desejar.

O primeiro select soma as visitas por usuário e site.

A segunda seleção encontra o máximo de visitas para cada usuário na subconsulta e, em seguida, junta-se novamente à tabela temporária para encontrar o webiste cuja contagem corresponde a esse valor máximo.
create temporary table TempSum
    select user-ID, website-ID, count(*) as TotalCount
        from YourTable
        group by user-ID, website-ID

select ts.user-ID, ts.website-ID, ts.TotalCount
    from (select user-ID, max(TotalCount) as MaxCount
              from TempSum
              group by user-ID) ms
        inner join TempSum ts
            on ts.user-ID = ms.user-ID
                and ts.TotalCount = ms.MaxCount