Мои таблицы выглядит следующим образом:T-SQL группы по 2 таблицы
Для каждого TimeOfDay я хотел бы получить наиболее часто категорию. Например, если есть 3 аукциона с уникальным ClosedTime, но каждый из этого времени имеет TimeOfDay = 1 и 2 из этих аукционов имеют CategoryId = 1 и один аукцион CategoryId = 2 Я хотел бы получить:
TimeOfDay | CategoryId
1 | 1
Я попытался group by TimeOfDay и CategoryId, но все же я не знаю, как получить верхнюю категорию для каждой группы TimeOfDay. У меня есть это:
select t.TimeOfDay, a.CategoryId, count(a.CategoryId)
numberOfSalesInCategory
from Auction a
join Time t on t.Id = a.ClosedTime
where IsSuccess = 1
group by t.TimeOfDay, a.CategoryId
и привести к некоторой выборки данных:
TimeOfDay | CategoryId | numberOfSalesInCategory
0 1 1
1 1 1
1 2 3
2 2 1
0 3 1
3 3 1
3 4 2
Так что для этих данных я хотел бы получить:
TimeOfDay | CategoryId
0 | 1 or 3 numberOfSalesInCategory for both is 1
1 | 2 numberOfSalesInCategory is 3
2 | 2 only one category
3 | 4 numberOfSalesInCategory is 2