У меня есть таблица базы данных с полем, имеющим такие значения, как
AAAA
BBBB0001
BBBB0002
CCCC
CCCC
CCCC
, и я хотел бы знать, сколько существует AAAA, BBBB и CCCC (1, 2 и 3 здесь).
Если я настрою пару тестовых запросов в LinqPad с такими значениями в массиве:
var Table = new [] {"AAAA", "BBBB1", "BBBB2", "CCCC", "CCCC", "CCCC"};
var query1 = Table.GroupBy(d => d).Select( g => new { K = g.Key, C = g.Count()});
query1.Dump();
var query2 = Table.GroupBy(d => d.Substring(0, 4)).Select( g => new { K = g.Key, C = g.Count()});
query2.Dump();
, то получу ожидаемые результаты - в первом случае, сгруппированном по ключу и ввторая сгруппирована по первым четырем символам клавиши
AAAA 1
BBBB1 1
BBBB2 1
CCCC 3
AAAA 1
BBBB 2
CCCC 3
, что нормально.Но если заменить массив таблицей SQLite и выполнить те же запросы, я получу
AAAA 1
BBBB1 1
BBBB2 1
CCCC 3
AAAA 1
BBBB 1
BBBB 1
CCCC 3
То есть, первое правильно, а во втором поле корректно сокращается, но группировкане так.
Кто-нибудь пролил свет на это?
Андрей