From d2934bf8a3e4147830bb790813c77121ef78dad0 Mon Sep 17 00:00:00 2001 From: Malin Freeborn Date: Wed, 12 Feb 2025 23:01:50 +0100 Subject: [PATCH] recfile fixes --- data/recfiles.md | 1 + data/recfiles/recfixes.md | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 data/recfiles/recfixes.md diff --git a/data/recfiles.md b/data/recfiles.md index 901901b..c25a269 100644 --- a/data/recfiles.md +++ b/data/recfiles.md @@ -44,6 +44,7 @@ recset -f "$new_field" --delete $database - [Extended example](recfiles/extended.md) - [Playing with board games data](recfiles/Board_Games.md) +- [Fixes](recfiles/recfixes.md) # Resources diff --git a/data/recfiles/recfixes.md b/data/recfiles/recfixes.md new file mode 100644 index 0000000..fa01b65 --- /dev/null +++ b/data/recfiles/recfixes.md @@ -0,0 +1,33 @@ +--- +title: "Recfixes" +tags: [ "data", "recfiles" ] +requires: "Recfiles" +--- + +Sometimes `recsel` chokes on a large query, and you need to break the query into chunks with a pipe. + +This Kickstarter file has 374,853 records. +Here's the chonky query: + +```sh +recsel kick.rec -e "Category = 'Games'" -p "Subcategory,Avg(Goal)" -G Subcategory +``` + +It breaks down like this: + +| Chunk | Meaning | +|:-----------------------------:|:---------------------------------------------:| +| `recsel kick.rec` | Select records from `kick.rec` | +| `-e "Category = 'Games'"` | Select only records where Category = 'Games' | +| `-p "Subcategory,Avg(Goal)"` | Print the Subcategory and average goal | +| `-G "Subcategory"` | Group by subcategory | + +Two ways to break the query apart: + +```sh +recsel kick.rec -e "Category = 'Games'" | recsel -p "Subcategory,Avg(Goal)" -G "Subcategory" + +recsel kick.rec -e "Category = 'Games'" > games.rec +recsel games.rec -p "Subcategory" -G "Subcategory" +``` +