2012-12-02 56 views
0

我需要幫助的第一個查詢 - 我有一個名爲體育場的表,它包含有關不同體育場的信息。每天可以在某個體育場玩上一場比賽。 Stadium.Number是指球場的數量,Stadium.Date是指比賽日期。我需要針對每個Stadium.Number列出一個查詢,其中包含大部分遊戲的日期。如果某個體育場有兩個具有相同遊戲次數的日期,則應同時顯示。MYSQL5.1統計日期的查詢?

例如與下面的以下數據:

Stadium 1, 2012-03-19 
Stadium 1, 2012-08-14 
Stadium 1, 2012-08-14 
Stadium 2, 2012-09-15 
Stadium 2, 2012-09-15 
Stadium 2, 2012-03-20 
Stadium 2, 2012-03-20 
Stadium 3, 2012-11-20 

查詢應返回:

    Stadium.Number Busiest Date 
        Stadium 1,  2012-08-14 
        Stadium 2,  2012-09-15 (shows this and below 
        Stadium 2,  2012-03-20  because they both have count 2) 
        Stadium 3,  2012-11-20 

到目前爲止,我有以下的,但我希望它它不工作:

SELECT Number, Date, count(Date) 
FROM Stadium 
group by Number,Date 
order by count(Date) desc 

謝謝!

回答

0

你可能想使用:

MAX(count(Date)) 
+0

我想這一點,MySQL不喜歡它:( – dwurf

+0

我將如何使用它?我已經試過和不知道究竟怎麼辦呢?謝謝 – user1745447

+0

子查詢像上面應該這樣做。 – bear

0

這醜陋的野獸(sql fiddle)的第一件事是我能想出。

select s.number, s.date, s.d 
from (
    select number, date, count(date) as d 
    from Stadium 
    group by number, date 
) s, (
    select number, date, max(d) m 
    from (
     select number, date, count(date) d 
     from Stadium 
     group by number, date 
    ) dates1 
    group by number 
) d2 
where s.number = d2.number 
and s.d = d2.m 
; 
+0

現在我想不出有什麼辦法可以做到,如果你的日期是以varchar的形式存儲的話,它們的顯示方式與你輸入的方式一樣,如果你把它們存儲爲日期,就像我一樣。應該看看有關日期和時間函數的mysql文檔 – dwurf

+0

我的意思是,是否有編輯此查詢的方式,以便日期不是這種格式:2012年8月14日00:00:00 + 0000,它的格式如下:2012-08-14? 謝謝。 – user1745447

+0

是的,答案是在日期和時間函數的mysql文檔:) date_format函數是一個很好的開始 – dwurf