SQL -Уродливая комбинация GROUP BY и COALESCE

У меня есть таблица с данными, подобными следующим :

[ID], [State], [foo], [DateCreated], [DateUpdated]

Чем дольше я работаю над этим, тем уродливее становится мой SQL, что говорит мне о том, что я, вероятно, делаю что-то не так. Что мне нужно, так это уникальный список каждого состояния, пока foo всегда одно и то же для этого состояния(если foo не одно и то же для всех записей в этом состоянии, мне вообще не нужно это состояние). Кроме того, я хочу ОБЪЕДИНИТЬ DateCreated и DateUpdated и получить максимальное значение для этого состояния.

Итак, учитывая эти данные:

[ID], [State], [foo], [DateCreated], [DateUpdated]
1,  MA, data1,  05/29/2012, 06/02/2012
2,  MA, data1,  05/29/2012, 06/03/2012
3,  RI, data2,  05/29/2012, NULL
4,  RI, data3,  05/29/2012, NULL
5,  NH, data4,  05/29/2012, NULL
6,  NH, data4,  05/29/2012, 06/05/2012

Мне нужны только эти результаты:

[State], [foo], [LastUpdated]
MA, data1,  06/03/2012
NH, data4,  06/05/2012

Какой самый элегантный способ получить то, что мне нужно?

5
задан Adam Wenger 10 July 2012 в 18:10
поделиться