• I know this is a few days late, but I wanted to have a try at this. Here is what I came up with. Does it do what you require?

    with countDates as (

    select venue,

    eventdate,

    dateadd(hour, -1, eventdate) beforedate,

    dateadd(hour, 1, eventdate) afterdate,

    count(*) over (partition by venue, eventdate) repeated

    from #groupings

    )

    select

    eventname,

    venue,

    ca.eventdate

    from #groupings g

    cross apply (

    select top 1 eventdate

    from countDates c

    where g.venue = c.venue and

    g.eventdate between beforedate and afterdate

    order by repeated desc) ca

    group by

    eventname,

    venue,

    ca.eventdate;