0
我卡重寫這個SQL期λ:重寫這個SQLλ - 使用計數和組由
SELECT TOP 1000 COUNT(LoginDateTime)
,[LoginDateTime]
,[Culture]
FROM [LearningApp].[dbo].[UserActivities]
group by LoginDateTime, Culture
結果:
+-----+---------------------------+----------+
| | LoginDateTime | Culture |
+-----+---------------------------+----------+
| 1 | 2016-07-14 12:21:23.307 | de |
| 4 | 2016-07-13 12:21:23.307 | en |
| 2 | 2016-07-14 12:21:23.307 | en |
+-----+---------------------------+----------+
而且我的代碼:
public List<UserActivityResponseContract> GetUserActivity()
{
var userActivityResponseContracts = new List<UserActivityResponseContract>();
var userActivitiesList = _baseCommands.GetAll<UserActivity>()
.Select(x => new
{
x.LoginDateTime,
x.Culture
})
.GroupBy(x => new { x.LoginDateTime, x.Culture});
foreach (var userActivity in userActivitiesList)
{
userActivityResponseContracts.Add(new UserActivityResponseContract
{
ActivityDate = userActivity.Key.LoginDateTime.ToShortDateString(),
NumberOfTimesLoggedIn = userActivity.Count(),
Culture = userActivity.Key.Culture
});
}
return userActivityResponseContracts;
}
這似乎並不困難,但我有點卡住了。
這是SQL真的是你想要的嗎?它看起來像按時間戳分組到毫秒,然後將ActivityDate設置爲只有日期部分。 – Sconibulus
@Sconibulus我只關心日期的某一天,因爲這是一個查詢,我希望每天看到活動。 –
在這種情況下,您可能希望選擇日期而不是時間戳。例如:SELECT CAST(LoginDateTime AS DATE) – Sconibulus