I got a SQL Server table with columns ResolvedDate
and ResolvedBy
.
Now I want to select those two columns and count their results, which I
If you're trying to count each item by date, you'd need to use GroupBy
:
var countsByDate = _dateContext.Activities
.Where(a => a.IsResolved && a.ResolvedBy == userId)
.GroupBy(a => a.ResolvedDate)
.Select(g => new {ResolvedDate = g.Key, Count = g.Count() });
var dates = dataContext.Activities
.Where(a => a.IsResolved && a.ResolvedBy == userId)
.Select(a => a.ResolvedDate)
.ToList();
var count = dates.Count;
If you only want to get the count, you can make it much faster by selecting the count alone:
var count = dataContext.Activities
.Count(a => a.IsResolved && a.ResolvedBy == userId);
You have to group your data by ResolvedDate to get number of activities resolved every day.
var dates = from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate into g
select new { Date = g.Key, Count = g.Count() }
To group just by day (without hour, minutes, etc.) you can change the group statement:
var dates = from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate.Date into g
select new { Date = g.Key, Count = g.Count() }
from a in dataContext.Activities
where a.IsResolved && a.ResolvedBy == userId
group a by a.ResolvedDate into g
select new {ResolvedOn=g.Key, NumberResolved= g.Count()}