Crates.io | csv-query |
lib.rs | csv-query |
version | 0.5.0 |
source | src |
created_at | 2018-06-27 18:59:31.782658 |
updated_at | 2018-09-13 14:58:31.13395 |
description | Make SQL queries on CSV files |
homepage | |
repository | |
max_upload_size | |
id | 71987 |
size | 10,841 |
This is based on the idea of rows but I want to limit it only to a fast CSV parser with the embeded sqlite query.
This is still is not fully done
brew install jaysonsantos/tools/csv-query
Assuming you already have cargo just run this:
cargo install csv-query-cli
Save these two example files.
user.csv
user_id;name
1;User 1
2;User 2
3;User 3
credits.csv
user_id;credit
1;5
1;30
2;3
1;4
3;1
and you should be able to run this query over it
$ csv-query -q "
select
u.name, sum(c.credit) credits, avg(c.credit) avg_credits
from table1 u
join table2 c
on u.user_id = c.user_id
group by u.user_id
having avg(c.credit) >= 3" \
-f user.csv -f credits.csv
"name";"credits";"avg_credits"
"User 1";"39";"13"
"User 2";"3";"3"
If you don't need the flexibility of SQLite or want to do things real fast and use a more mature project you should use xsv.