resueltos - tipos de consultas sql
Usar union y count(*) juntos en una consulta SQL (3)
Es tu objetivo ...
- Para contar todas las instancias de "Bob Jones" en ambas tablas (por ejemplo)
- ¿Para contar todas las instancias de "Bob Jones" en
Results
en una fila y todas las instancias de "Bob Jones" enArchive_Results
en una fila separada?
Asumiendo que es # 1 querrías algo como ...
SELECT name, COUNT(*) FROM
(SELECT name FROM Results UNION ALL SELECT name FROM Archive_Results)
GROUP BY name
ORDER BY name
Tengo una consulta SQL, se ve algo como esto:
select name, count (*) from Results group by name order by name
y otro, idéntico que se carga desde una tabla de resultados de archivo, pero los campos son los mismos.
select name, count (*) from Archive_Results group by name order by name
¿Cómo combinaría los dos en una sola consulta? (Así que el grupo por aún funcionaría correctamente). Intenté con unir todo, sin embargo, no funcionará. ¿Qué me estoy perdiendo?
Si tiene índices de soporte y recuentos relativamente altos, algo como esto puede ser considerablemente más rápido que las soluciones sugeridas:
SELECT name, MAX(Rcount) + MAX(Acount) as TotalCount
FROM (
SELECT name, count(*) as Rcount, 0 as Acount
FROM Results GROUP BY name
UNION ALL
SELECT name, 0, count(*)
FROM Archive_Results
GROUP BY name
) AS Both
GROUP BY name
ORDER BY name;
select tem.name, count(*)
from(select name from results
union all
select name from archive_results) as tem
group by name
order by name