Estoy escribiendo una aplicación web de carreras de caballos y tengo una página de estadísticas. Lo que intento hacer es mostrar cuántos ganadores hay cada año.SQL Count (*) en varias tablas
Actualmente tengo esto:
SELECT `Horse Number`, Count(*) AS `Total Winners`
FROM `races`.`2009`
WHERE `Win $`>0
GROUP BY `Horse Number`
ORDER BY Count(*) DESC;
Funciona como un encanto y devuelve el siguiente
Horse Number | Total Winners
1|48
2|49
3|39
4|31
5|26
6|31
7|21
8|25
9|31
10|16
11|16
12|20
13|9
14|8
15|6
16|3
17|3
18|2
19|2
ahora he creado una tabla para el año 2010 y estoy deseando SQL para devolver algo similar pero Quiero que busque en 2009 y 2010 al mismo tiempo. Pensé que algo como esto podría hacer el truco.
SELECT `Horse Number`, Count(*) AS `Total Winners`
FROM `races`.`2009`
WHERE `Win $`>0
GROUP BY `Horse Number`
UNION
SELECT `Horse Number`, Count(*) AS `Total Winners`
FROM `races`.`2010`
WHERE `Win $`>0
GROUP BY `Horse Number`
ORDER BY Count(*) DESC;
Sin embargo, sólo está generando resultados adicionales en la parte inferior de la mesa, así que ahora tienen 2 filas para cada caballo como éste
Horse Number | Total Winners
1|48
2|49
3|39
4|31
5|26
6|31
7|21
8|25
9|31
10|16
11|16
12|20
13|9
14|8
15|6
16|3
17|3
18|2
19|2
1|0
2|0
3|0
4|0
5|0
6|0
7|0
8|0
9|0
10|0
11|0
12|0
13|0
14|0
15|0
16|0
17|0
18|0
19|0
¿Hay alguien capaz de ayudarme por favor
Gracias
Almacenamiento del resultado en una tabla diferente para cada año no es la forma en que SQL. Debe usar una sola tabla con una columna anual con un índice en esa columna. Esto hará las cosas mucho más fáciles para ti. –
Es por eso que las tablas por período no son para los no iniciados. –