Собрать статистику с таблицы

TRS

Client
Регистрация
05.03.2013
Сообщения
32
Благодарностей
4
Баллы
8
Есть таблица формата
rand_text;rand_text1;rand_text
rand_text;rand_text2;rand_text
rand_text;rand_text3;rand_text
rand_text;rand_text2;rand_text
....

1.3 млн строк.

необходимо собрать статистику по центральной колонке и вывести в другую таблицу в формате:
rand_text1;1
rand_text2;2
rand_text3;1

где вторая колонка - количество одинаковых совпадений из первой таблицы второй колонки.
идеальный вариант еще отсортировать по убыванию.

возможно кто-то сталкивался с подобным и есть готовый сниппет :ah:
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 963
Благодарностей
797
Баллы
113
В последних версиях Excel или LibreOffice Calc это легко делается, гугли последовательность действий и формулу
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
786
Баллы
113
C#:
var filename = @"D:\downloads\test.txt";
var outfilname = @"D:\downloads\out.txt";
var splitter = ";";

File.WriteAllLines(outfilname, File.ReadAllLines(filename, Encoding.UTF8)
        .Select(s=>s.Split(new String [] {splitter}, StringSplitOptions.None))
        .GroupBy(x=>x[1])
        .Select(g => new {Value = g.First()[1], Count = g.Count()})
        .OrderByDescending(x=>x.Count)
        .Select(d => d.Value+splitter+d.Count)
    , Encoding.UTF8);
 
  • Спасибо
Реакции: dian4ik25 и Nick

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)