Количество SQL (*) на нескольких таблицах

Я пишу веб-приложение скачек, и у меня есть страница статистики. То, что я пытаюсь сделать, показать сколько победителей, там с каждого года.

В настоящее время у меня есть это:

SELECT `Horse Number`, Count(*) AS `Total Winners`
FROM `races`.`2009`
WHERE `Win $`>0 
GROUP BY `Horse Number`
ORDER BY Count(*) DESC;

Это работает как очарование и возвращает следующее

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

Я теперь составил таблицу на 2010, и я желаю, чтобы SQL возвратил что-то подобное, но я хочу, чтобы это искало за 2009 и 2010 одновременно. Я думал, что что-то вроде этого могло бы добиться цели.

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;

Но это просто возвращает дополнительные результаты у основания таблицы, таким образом, у меня теперь есть 2 строки для каждой лошади как это

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

Любой, который в состоянии помогать мне

Спасибо

7
задан Taryn 15 December 2014 в 13:49
поделиться

1 ответ

Во-первых, я бы предложил иметь ОДИН столбец с дополнительной колонкой на год.

Во-вторых, при текущей структуре таблицы, вы можете сделать

SELECT `Horse Number`, Count(*) AS `Total Winners`
FROM (
  SELECT * FROM `races`.`2009`
  UNION ALL
  SELECT * FROM `races`.`2010`
) all_races
WHERE `Win $`>0 
GROUP BY `Horse Number`
ORDER BY Count(*) DESC;
10
ответ дан 7 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: