У меня есть такая таблица:
PalmId | UserId | CreatedDate
1 | 1 | 2018-03-08 14:18:27.077
1 | 2 | 2018-03-08 14:18:27.077
1 | 3 | 2018-03-08 14:18:27.077
1 | 1 | 2018-03-08 14:18:27.077
Я хочу знать, сколько дат было создано для Palm 1, и я также хотел бы знать, сколько пользователей создали эти даты для Palm 1. Таким образом, результат для первого - 4
, а для второго - 3
Мне интересно, могу ли я сделать это в одном запросе, в отличие от необходимости выполнять подзапрос и объединение для себя, как в примере ниже.
SELECT MT.[PalmId], COUNT(*) AS TotalDates, T1.[TotalUsers]
FROM [MyTable] MT
LEFT OUTER JOIN (
SELECT MT2.[PalmId], COUNT(*) AS TotalUsers
FROM [MyTable] MT2
GROUP BY MT2.[UserId]
) T1 ON T1.[PalmId] = MT.[PalmId]
GROUP BY MT.[PalmId], T1.[TotalUsers]