valores una total sumar resultados por filas contar consultas consulta columnas columna agrupar agrupadas acumular sql postgresql case

una - Consulta SQL para sumar condicionalmente según la ventana de fecha móvil



sumar por filas sql server (3)

Tal vez puedas unir los diferentes meses.

select sum(whatever), ''january'' from user where month = ''january'' union all select sum(whatever), ''february'' from user where month = ''february'' ...

Estoy tratando de averiguar algunas estadísticas de ventana deslizante en mis usuarios. Tengo una tabla con un usuario y columnas como created_at y verified_at. Para cada mes, me gustaría saber cuántos usuarios se registraron (un grupo simple por date_trunc del created_at), y luego de esas personas, cuántos verificaron dentro de mi ventana deslizante (llámelo 60 días).

Me gustaría hacer una consulta SQL que me dé algo como:

Month | Registered | Verified in 60 days Jan 2009 | 1543 | 107 Feb 2009 | 2000 | 250

Estoy usando postgresql. Empecé a ver la suma (caso ...), pero no sé si puedo hacer que mi caso dependa de la fecha de ajuste de alguna manera.

Esto no funciona, por supuesto, pero aquí está la idea:

SELECT DATE_TRUNC(''month'', created_at) as month, COUNT(*) as registered, SUM(CASE WHEN verified_at < month+60 THEN 1 ELSE 0 END) as verified FROM users GROUP BY DATE_TRUNC(''month'', created_at)


SELECT MONTH, COUNT(*) AS Registered, SUM (CASE WHEN datediff(day,reg_date,ver_date) < 60 THEN 1 ELSE 0) as ''Verified in 60 //days datediff is an MSSQL function amend for postgresql'' FROM TABLE GROUP BY MONTH


SELECT COUNT(created_at) AS registered, SUM(CASE WHEN verified_at <= created_at + ''60 day''::INTERVAL THEN 1 ELSE 0 END) AS verified FROM generate_series(1, 20) s LEFT JOIN users ON created_at >= ''2009-01-01''::datetime + (s || '' month'')::interval AND created_at < ''2009-01-01''::datetime + (s + 1 || '' month'')::interval GROUP BY s