2010-01-01 40 views
7

At yarışı web uygulaması yazıyorum ve bir istatistik sayfam var. Ne yapmaya çalıştığım, her yıl kaç kazanan olduğunu gösteriyor.SQL Count (*) çoklu tablolarda

Şu i bu var:

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

Bu bir cazibe gibi çalışır ve döner aşağıdaki

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 

şimdi 2010 yılı için bir tablo oluşturduk ve ben benzer bir şey dönmek için SQL isteyen ediyorum ama 2009 ve 2010'u aynı anda araştırmasını istiyorum. Böyle bir şey hile yapabilirim diye düşündüm.

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; 

Ama sadece tablonun altındaki ekstra sonuçları dönüyor yüzden şimdi bu

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 

gibi her at için 2 satır olması

Teşekkür bana lütfen yardım edebilecek olan var mı

+7

yapabilirsiniz SQL yol değildir. Bu sütunda bir endeksle bir yıl sütununa sahip tek bir tablo kullanmalısınız. Bu sizin için işleri daha kolay hale getirecektir. –

+0

Bu nedenle dönem başı tabloları neden tetiklenmez. –

cevap

10

Öncelikle, bir yıl boyunca fazladan bir sütun içeren ONE tablosunu öneririm.

İkincisi, cari masa yapısıyla, her yıl için farklı bir tabloda sonucu saklanması

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; 
+0

Bir çekicilik gibi çalışır. Çok teşekkür ederim – Glen

+3

UNION TÜMÜNÜ UNUTMAYIN. –

+0

Yep, bir şekilde, satırların yanlış olabileceği 2 tablo boyunca benzersiz olduğunu varsayıyordu. Sabit – DVK