Немного более короткая цепочка методов использования версии:
var list = new List<string> {"a", "b", "a", "c", "a", "b"};
var q = list.GroupBy(x => x)
.Select(g => new {Value = g.Key, Count = g.Count()})
.OrderByDescending(x=>x.Count);
foreach (var x in q)
{
Console.WriteLine("Value: " + x.Value + " Count: " + x.Count);
}
Я думаю, что это Firebird .
Даже Cte поддерживаются в Firebird 2.1!
Firebird работает в Windows, Linux, Mac OS ...
Драйвер Jaybird для Java.
Есть несколько хороших инструментов миграции из Access в Firebird:
Это может быть полезно в вашем исследовании: Сравнение систем управления реляционными базами данных .
Я лично предлагаю серьезно взглянуть на Firebird. Он кроссплатформенный, имеет собственный поставщик .NET и поддерживает упомянутые вами объединения.
Я бы посмотрел на сервер базы данных Advantage (sybase.com). Он работает в Windows, Linux и NetWare . У нас есть приложение для коммерческого учета / управления проектами в строительной отрасли, и мы перешли на Advantage 6 или 7 лет назад. Мы очень довольны производительностью и поддержкой. Покупатели тоже очень довольны.
Firebird - самая "совместимая с SQL" встроенная база данных. Механизм встроенной версии такой же, как и серверной версии.
Обратите внимание, что со встроенным Firebird только один клиент может одновременно подключаться к базе данных, поэтому вы можете охватить несколько подключений из одного процесса, но не подключаться из разных процессы. Эта проблема исправлена в Firebird 2.5 и выше.
Наша компания также использует Advantage. Мы пришли к нему из опыта XBase , но с тех пор приняли его природу SQL. Он работает на множестве платформ (Windows, Linux, NetWare) и имеет набор драйверов (PHP, ADO, JDBC, ODBC, Crystal), так что он работает практически в любой среде, в которой вы можете программировать.
Вы можете найти довольно подробное описание соответствия стандартам Derby SQL Standards здесь: http://wiki.apache.org/db-derby/SQLvsDerbyFeatures