Подсчитать значения из столбца - PullRequest
1 голос
/ 24 декабря 2010

Я хочу посчитать разные значения в столбце. Столбец содержит такие данные

Locations
Street1
Street2
Street3
Street1,Street2
Street2,
Street1,Street2,Street3

Теперь счет должен быть как
Улица 1 (3)
Улица2 (4)
Street3 (2)

Ответы [ 2 ]

2 голосов
/ 24 декабря 2010

Я не могу придумать простой способ сделать это с помощью LINQ to SQL.

Конечно, простым способом (если вы можете себе это позволить) было бы привести все строки ввернуться к клиенту, а затем выполнить запрос с помощью LINQ to Objects.

var query = myDataContext
           .MyTable
           .AsEnumerable()
           .SelectMany(row => row.Locations.Split(','))
           .GroupBy(location => location)
           .Select(group => new { Location = group.Key, Count = group.Count() });

Если вы хотите использовать вместо последовательности строк в этом формате, замените последнюю строку на:

.Select(group => string.Format("{0} ({1})", group.Key, group.Count());

С другой стороны, я бы настоятельно рекомендовал бы нормализовать схему вашей базы данных.Не стоит хранить списки с разделителями в столбце.

1 голос
/ 24 декабря 2010
var result = Locations
    .SelectMany(s => s.Split(','))
    .GroupBy(s => s, (loc,b) => new { loc, b.ToList().Count});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...