¿Cómo puedo encontrar el equipo con más vendedores activos (mayor número de ventas de software por usuario por día)?

Dibujó Pham:

¿Cómo puedo encontrar el equipo con más vendedores activos (mayor número de ventas de software por usuario por día)? Yo quería hacer algo como esta consulta pero no se siente bien tranquila

SELECT users.team_id, count(*) as sales FROM users
INNER JOIN activity ON users.user_id = activity.user_id
WHERE activity.sales = software
GROUP BY users.team_id
ORDER BY sale DESC

Mi tabla de usuario se ve así:

user_id       team_id  
0               62  
1               32      
2               21      

Mientras mi mesa de actividades es el siguiente:

user_id      sale_date              sale
1            2019-05-02 11:02:39    hardware    
2            2018-05-02 11:02:53    software    
2            2019-06-02 11:42:33    software
Berg

Suena como esto es una consulta de paso a paso, así que vamos a empezar poco a poco con la parte más interna: llevar los conteos de ventas por usuario por día.

SELECT sale_date, user_id, count(*) as sales
WHERE sale = 'software'
GROUP BY sale_date, user_id

A continuación, podemos conseguir que el usuario más activo para cada día :

SELECT DISTINCT ON (sale_date) sale_date, user_id
FROM (
    SELECT sale_date, user_id, count(*) as sales
    WHERE sale = 'software'
    GROUP BY sale_date, user_id
) AS counts_by_date_and_user
ORDER BY sale_date, sales -- consider breaking ties somehow

Entonces podemos contar con qué frecuencia un usuario fue el más activo del día, ordenar por eso, y obtener su Identificación del equipo.

SELECT team_id, user_id, count(*) as days
FROM (
    SELECT DISTINCT ON (sale_date) sale_date, user_id
    FROM (
        SELECT sale_date, user_id, count(*) as sales
        WHERE sale = 'software'
        GROUP BY sale_date, user_id
    ) AS counts_by_date_and_user
    ORDER BY sale_date, sales -- consider breaking ties somehow
) AS most_active
JOIN users USING (user_id)
GROUP BY user_id
ORDER BY days DESC

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=406120&siteId=1
Recomendado
Clasificación