Вы можете решить эту проблему, используя базу данных H2 .
Следующий скрипт Groovy демонстрирует:
- Загрузка данных в базу данных
- Выполнение SQL-запросов «GROUP BY» и «ORDER BY»
Примечание: H2 поддерживает базы данных в памяти, поэтому у вас есть выбор - сохранять данные или нет.
// Create the database
def sql = Sql.newInstance("jdbc:h2:db/csv", "user", "pass", "org.h2.Driver")
// Load CSV file
sql.execute("CREATE TABLE data (id INT PRIMARY KEY, message VARCHAR(255), score INT) AS SELECT * FROM CSVREAD('data.csv')")
// Print results
def result = sql.firstRow("SELECT message, score, count(*) FROM data GROUP BY message, score ORDER BY score")
assert result[0] == "hello world"
assert result[1] == 0
assert result[2] == 5
// Cleanup
sql.close()
Пример данных CSV:
0,hello world,0
1,hello world,1
2,hello world,0
3,hello world,1
4,hello world,0
5,hello world,1
6,hello world,0
7,hello world,1
8,hello world,0
9,hello world,1
10,hello world,0