0

我需要帮助的第一个查询 - 我有一个名为 Stadium 的表,其中包含有关不同体育场的信息。每天可以在某个体育场进行多场比赛。Stadium.Number 是指体育场的编号,Stadium.Date 是指比赛的日期。我需要查询每个 Stadium.Number 的列表,其中举办最多比赛的日期。如果某个体育场有两个具有相同比赛次数的日期,则它们都应显示。

例如下面的数据:

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

谢谢!

4

2 回答 2

0

您可能想使用:

 MAX(count(Date))
于 2012-12-02T20:50:34.147 回答
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
;
于 2012-12-02T21:14:26.597 回答