Skip to content

Instantly share code, notes, and snippets.

@fdncred
Last active July 22, 2025 15:30
Show Gist options
  • Select an option

  • Save fdncred/8c521074e094b6be0630d0d4f54a2839 to your computer and use it in GitHub Desktop.

Select an option

Save fdncred/8c521074e094b6be0630d0d4f54a2839 to your computer and use it in GitHub Desktop.
agg command

Introduce a nushell aggregation command

Similar to group-by but meant to perform grouping and aggregation based on parameters provided.

Ideas

  • group by one or more column names
  • have either sub commands or parameters for
    • count
    • sum
    • average
  • output a table

Command name

agg-by

Initial Syntax

count counts the items in the grouped colum agg-by column_name --count agg-by column_name --sum different_column_name agg-by column_name --avg different_column_name

Advanced Syntax

Allow specifying mutliple columns

agg-by [column_name1, column_name2] --count

Example1

How it currently works in nushell

 open ~/Downloads/movies.csv |
    select Lead_Studio Worldwide_Gross |
    group-by Lead_Studio --to-table |
    upsert items {|r| $r.items.Worldwide_Gross | math sum} |
    sort-by items | rename Lead_Studio Worldwide_Gross

╭─#──┬──────Lead_Studio──────┬─Worldwide_Gross─╮
 0   New Line                         20.71 
 1   The Weinstein Company            27.88 
 2   CBS                              77.09 
 3   Lionsgate                       152.59 
 4   20th Century Fox                156.75 
 5   Paramount                       321.22 
 6   Sony                            403.12 
 7   Fox                             722.57 
 8   Summit                         1242.26 
 9   Independent                    1546.94 
 10  Universal                      1792.04 
 11  Disney                         2214.50 
 12  Warner Bros.                   2462.14 
╰─#──┴──────Lead_Studio──────┴─Worldwide_Gross─╯

Agg-By Example1

With using the agg command

 open ~/Downloads/movies.csv |
    agg-by Lead_Studio --sum Worldwide_Gross |
    sort-by Worldwide_Gross

Example2 with count

 open ~/Downloads/movies.csv |
    select Lead_Studio Worldwide_Gross |
    group-by Lead_Studio --to-table |
    upsert total {|r| $r.items.Worldwide_Gross | math sum} |
    update items {|i| $i.items.Lead_Studio | length} |
    sort-by total | rename Lead_Studio count Worldwide_Gross

╭─#──┬──────Lead_Studio──────┬─count─┬─Worldwide_Gross─╮
 0   New Line                   1            20.71 
 1   The Weinstein Company      2            27.88 
 2   CBS                        1            77.09 
 3   Lionsgate                  2           152.59 
 4   20th Century Fox           2           156.75 
 5   Paramount                  4           321.22 
 6   Sony                       4           403.12 
 7   Fox                        6           722.57 
 8   Summit                     5          1242.26 
 9   Independent               19          1546.94 
 10  Universal                  8          1792.04 
 11  Disney                     8          2214.50 
 12  Warner Bros.              14          2462.14 
╰─#──┴──────Lead_Studio──────┴─count─┴─Worldwide_Gross─╯

Agg-By Example2

 open ~/Downloads/movies.csv |
    agg-by Lead_Studio --count --sum Worldwide_Gross |
    sort-by Worldwide_Gross

Sample Data

Film,Genre,Lead_Studio,Audience_score_%,Profitability,Rotten_Tomatoes_%,Worldwide_Gross,Year
Youth in Revolt,Comedy,The Weinstein Company,52,1.09,68,19.62,2010
You Will Meet a Tall Dark Stranger,Comedy,Independent,35,1.211818182,43,26.66,2010
When in Rome,Comedy,Disney,44,0,15,43.04,2010
What Happens in Vegas,Comedy,Fox,72,6.267647029,28,219.37,2008
Water For Elephants,Drama,20th Century Fox,72,3.081421053,60,117.09,2011
WALL-E,Animation,Disney,89,2.896019067,96,521.28,2008
Waitress,Romance,Independent,67,11.0897415,89,22.18,2007
Waiting For Forever,Romance,Independent,53,0.005,6,0.03,2011
Valentine's Day,Comedy,Warner Bros.,54,4.184038462,17,217.57,2010
Tyler Perry's Why Did I get Married,Romance,Independent,47,3.7241924,46,55.86,2007
Twilight: Breaking Dawn,Romance,Independent,68,6.383363636,26,702.17,2011
Twilight,Romance,Summit,82,10.18002703,49,376.66,2008
The Ugly Truth,Comedy,Independent,68,5.402631579,14,205.30,2009
The Twilight Saga: New Moon,Drama,Summit,78,14.1964,27,709.82,2009
The Time Traveler's Wife,Drama,Paramount,65,2.598205128,38,101.33,2009
The Proposal,Comedy,Disney,74,7.8675,43,314.70,2009
The Invention of Lying,Comedy,Warner Bros.,47,1.751351351,56,32.40,2009
The Heartbreak Kid,Comedy,Paramount,41,2.129444167,30,127.77,2007
The Duchess,Drama,Paramount,68,3.207850222,60,43.31,2008
The Curious Case of Benjamin Button,Fantasy,Warner Bros.,81,1.78394375,73,285.43,2008
The Back-up Plan,Comedy,CBS,47,2.202571429,20,77.09,2010
Tangled,Animation,Disney,88,1.365692308,89,355.01,2010
Something Borrowed,Romance,Independent,48,1.719514286,15,60.18,2011
She's Out of My League,Comedy,Paramount,60,2.4405,57,48.81,2010
Sex and the City Two,Comedy,Warner Bros.,49,2.8835,15,288.35,2010
Sex and the City 2,Comedy,Warner Bros.,49,2.8835,15,288.35,2010
Sex and the City,Comedy,Warner Bros.,81,7.221795791,49,415.25,2008
Remember Me,Drama,Summit,70,3.49125,28,55.86,2010
Rachel Getting Married,Drama,Independent,61,1.384166667,85,16.61,2008
Penelope,Comedy,Summit,74,1.382799733,52,20.74,2008
P.S. I Love You,Romance,Independent,82,5.103116833,21,153.09,2007
Over Her Dead Body,Comedy,New Line,47,2.071,15,20.71,2008
Our Family Wedding,Comedy,Independent,49,0,14,21.37,2010
One Day,Romance,Independent,54,3.682733333,37,55.24,2011
Not Easily Broken,Drama,Independent,66,2.14,34,10.70,2009
No Reservations,Comedy,Warner Bros.,64,3.307180357,39,92.60,2007
Nick and Norah's Infinite Playlist,Comedy,Sony,67,3.3527293,73,33.53,2008
New Year's Eve,Romance,Warner Bros.,48,2.536428571,8,142.04,2011
My Week with Marilyn,Drama,The Weinstein Company,84,0.8258,83,8.26,2011
Music and Lyrics,Romance,Warner Bros.,70,3.64741055,63,145.90,2007
Monte Carlo,Romance,20th Century Fox,50,1.9832,38,39.66,2011
Miss Pettigrew Lives for a Day,Comedy,Independent,70,0.2528949,78,15.17,2008
Midnight in Paris,Romence,Sony,84,8.744705882,93,148.66,2011
Marley and Me,Comedy,Fox,77,3.746781818,63,206.07,2008
Mamma Mia!,Comedy,Universal,76,9.234453864,53,609.47,2008
Mamma Mia!,Comedy,Universal,76,9.234453864,53,609.47,2008
Made of Honor,Comdy,Sony,61,2.64906835,13,105.96,2008
Love Happens,Drama,Universal,40,2.004444444,18,36.08,2009
Love & Other Drugs,Comedy,Fox,55,1.817666667,48,54.53,2010
Life as We Know It,Comedy,Independent,62,2.530526316,28,96.16,2010
License to Wed,Comedy,Warner Bros.,55,1.9802064,8,69.31,2007
Letters to Juliet,Comedy,Summit,62,2.639333333,40,79.18,2010
Leap Year,Comedy,Universal,49,1.715263158,21,32.59,2010
Knocked Up,Comedy,Universal,83,6.636401848,91,219,2007
Killers,Action,Lionsgate,45,1.245333333,11,93.40,2010
Just Wright,Comedy,Fox,58,1.797416667,45,21.57,2010
Jane Eyre,Romance,Universal,77,0,85,30.15,2011
It's Complicated,Comedy,Universal,63,2.642352941,56,224.60,2009
I Love You Phillip Morris,Comedy,Independent,57,1.34,71,20.10,2010
High School Musical 3: Senior Year,Comedy,Disney,76,22.91313646,65,252.04,2008
He's Just Not That Into You,Comedy,Warner Bros.,60,7.1536,42,178.84,2009
Good Luck Chuck,Comedy,Lionsgate,61,2.36768512,3,59.19,2007
Going the Distance,Comedy,Warner Bros.,56,1.3140625,53,42.05,2010
Gnomeo and Juliet,Animation,Disney,52,5.387972222,56,193.97,2011
Gnomeo and Juliet,Animation,Disney,52,5.387972222,56,193.97,2011
Ghosts of Girlfriends Past,Comedy,Warner Bros.,47,2.0444,27,102.22,2009
Four Christmases,Comedy,Warner Bros.,52,2.022925,26,161.83,2008
Fireproof,Drama,Independent,51,66.934,40,33.47,2008
Enchanted,Comedy,Disney,80,4.005737082,93,340.49,2007
Dear John,Drama,Sony,66,4.5988,29,114.97,2010
Beginners,Comedy,Independent,80,4.471875,84,14.31,2011
Across the Universe,romance,Independent,84,0.652603178,54,29.37,2007
A Serious Man,Drama,Universal,64,4.382857143,89,30.68,2009
A Dangerous Method,Drama,Independent,89,0.44864475,79,8.97,2011
27 Dresses,Comedy,Fox,71,5.3436218,40,160.31,2008
(500) Days of Summer,comedy,Fox,81,8.096,87,60.72,2009
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment