Grouping by field data

Hello @Alexander, thank you for sharing your suggestions on implementing “group by”. You are just in time — in a few weeks, we plan to do technical research on this feature to determine the amount of work required to build it and decide if we can prioritize its implementation, as it is the most requested and awaited feature by our users.

I will make sure to forward your ideas to the team. Thanks again for putting all these together for us :blue_heart:


Airtable’s “Expand Group,” “Expand All Groups,” and “Collapse All Groups” features provide convenient ways to manage grouped data. These features allow you to expand individual groups, expand all groups at once, and collapse all groups to simplify the view. They are frequently used and offer convenience in organizing and analyzing data in Airtable. - would be great to keep that in baserow also

Just want to chime in that out of all the feature requests I see, this group by functionality seems to be the most value adding for businesses. It’s almost invaluable in finance and accounting. For basic CRUD apps, todo lists, shopping lists, group-by doesn’t make a lot of sense, because the aggregation logic is unclear. However when we’re taking about numbers or dollar amounts, all of sudden you want to do some groupings and aggregations like sums and averages.
In the financial industry, the most common pattern for pandas is 1. load data 2. group by and sum.

We’ve already started working on the group by feature :eyes:

Great! It’s not a trivial feature by any means. will have impact on many things, like export, formulas, row linking. I wouldn’t be surprised if this takes months to get right.

1 Like

Yeah, it’s a big one. @nigel is working on it and we don’t know yet when it’ll be finished. :slightly_smiling_face:

1 Like

OK i’ll stop bothering nigel with my endless questions :laughing:

Hi, Baserow team!
Just would like to highlight that you are on a right way with group by feature. One of your competitors, nocodb has just released thy group by feature, mentioned in their discord channel that it was one of the most awaited feature by their community) Maybe that info can give you some motivation and ideas) Column Operations | NocoDB

Thanks for the heads up @Alexander :eyes:

Hello there!
I just want to share some features connected to the “Group By” function, which I highly use in Airtable.
One feature is the “Group By” column summary, which displays a divided-by-group summary for sums, dates, quantities, etc. I’ve attached a screenshot from Airtable for reference.
Would be super usefull to see that in Baserow)

Hello @Alexander, back to you with the news. ‘Aggregations per group by’ are already part of our plans. You can track the progress: Aggregations per group by (#2164) · Issues · Baserow / baserow · GitLab.

I’m surprised grouping by related field or lookup aren’t possible. It doesn’t show up in the list.

image

Hi,

A Linked field can contain multiple items. Therefore, a lookup field can also contain multiple items and is considered a list. Therefore, it is not possible to use those field as a group by field.

A work around is to use a formula field that converts the lookup field to a single text. This formula uses the lookup() function combined with the join() function:

join(lookup('a link row field name', 'field name in other the table'),'')
1 Like

Hello! The ‘Group By’ feature is one I heavily rely on in Airtable and it’s been on of a key reason I haven’t been able to start migrating my database to Baserow.

I’m really grateful that the team has now included this feature, but it still needs fine-tuning to become a fully-functional solution. I’ve recently taken a deep dive into the ‘Group By’ feature, creating a test dataset (including orders, products, clients, and managers) to explore it thoroughly. I’d like to share my suggestions, mainly features from by Airtable, that are necessary to make the ‘Group By’ feature in Baserow fully functional and robust.

There are 10 proposals (7х🚨 - are critical, and 3х📌 - are not critical, so I personally can migrate the database, but would miss them as time-savers and UX-improvers)

  1. :rotating_light: Group sections and collapse \ expand - https://youtu.be/33KQ2OdcTes?t=95

  2. :rotating_light: Collapse and expand all groups - https://youtu.be/33KQ2OdcTes?t=330

  3. :pushpin: ctrl + f ⇒ auto expand | collapse all groups - https://youtu.be/33KQ2OdcTes?t=376

  4. :rotating_light: Placement of group titles - https://youtu.be/33KQ2OdcTes?t=457

  5. :rotating_light: Freezing the Primary Field - https://youtu.be/33KQ2OdcTes?t=524

  6. :rotating_light: Summaries for groups - https://youtu.be/33KQ2OdcTes?t=633

  7. :rotating_light: Summaries for field types - formula and relations - https://youtu.be/33KQ2OdcTes?t=807

  8. :rotating_light: Group By for Formula and Relation Fields - https://youtu.be/33KQ2OdcTes?t=846

  9. :pushpin: Changing orders in a grouping by setting - https://youtu.be/33KQ2OdcTes?t=939

  10. :pushpin: Manual sorting of groups in group by (notion like) - https://youtu.be/33KQ2OdcTes?t=970

I would like to express my thoughts clearly and in full detail, so i will send a message below the full description of each point complete with screenshots, links, and videos

1 Like

Below is a detailed description of each point:"

The link to the datasets “Orders table”:
Airtable:

:rotating_light: #1 - Group sections and collapse \ expand -

The ‘Group By’ feature is essential for quickly navigating through large datasets. This is very efficiently implemented in Airtable, where groups are separated by empty spaces. This format of data presentation allows to collapse and expand groups. By default, all groups are collapsed, allowing me to quickly get an overview of the top-level categories. I can then expand the specific group/subgroup I need to work with the relevant data.

Without the division into sections and the ability to collapse/expand groups, the convenience of using the ‘Group By’ functionality is lost. Currently, in Baserow, it resembles more a simple field filter with a frozen title. To quickly access the necessary data, instead of simply clicking to expand the required group, I have to scroll through the entire page for a long time, which is quite inconvenient.

Even in NocoDB, which in my opinion lags behind Baserow in many aspects, the ‘Group By’ feature is implemented through separate sections with the ability to collapse and expand.

Below are the links to view with group by turned on)

Link to airtable view: Airtable - Group by date and status

Link to baserow view: Group by date and status // Baserow

Link to nocoDB view: NocoDB

Attempt to answer three questions:

  1. Were there any canceled orders on January 8th?
  2. Which day had more paid orders, January 2nd or January 3rd?
  3. Were there any orders on January 6th and 7th?

As you can see, the way Airtable’s “Group By” feature functions facilitates quicker answers. This is because it allows data to be organized from a broader category to more specific ones. In Baserow, however, you still need to scroll through the entire table.

AIRTABLE

NOCODB

BASEROW

:rotating_light: #2 - Collapse and expand all groups | sub-groups

Airtable gives options to:

  • Extend \ Collapse all the groups and sub-groups on the page
  • Extend \ Collapse a single group or sub-group
  • Extend \ Collapse all sub-groups of a chosen element

The button to open this pop-up is located on every single group and sub-group.

The ability to easily manage groups this way makes work with grouping by very convenient and saves a lot of time manually opening and closing groups.

**:pushpin: #3 - ctrl + f ⇒ auto expand | collapse all groups **

In airtable CTRL+F (cmd+F) triggers a special custom pop-up. By entering a value into this pop-up, it immediately leads to the expansion of all groups, and showcasing arrows to jump between the located values. It is exceptionally effective for quickly finding a specific group, category, row, or cell. Once the pop-up is closed, all groups return to their collapsed state.

In the scenario shown in the screenshot, this enables the quick identification of orders from a particular client, eliminating the need to add an extra ‘Group By’ level.

The process would be even more convenient if the auto-expansion of all groups happened as soon as the pop-up is opened, rather than when the first character is entered. This way, you could temporarily expand all groups even when you’re not looking for specific data.

:rotating_light: #4 - Placement of group titles

Due to Airtable’s group layout, it can also store group titles as headers, saving significant screen space compared to Baserow’s current method. Screen space is crucial for users, and Airtable’s approach proves to be more efficient in this regard.

:rotating_light: #5 - Freezing the Primary Field - Essential for Maintaining Focus While Scrolling Horizontally

In both Airtable and Baserow, the first column in a grid view is always frozen. However, Airtable’s advantage is that this column remains frozen even in ‘Group By’ mode, unlike in Baserow. In Baserow, when scrolling horizontally, there’s a tendency to lose track of the row|rows in focus, which can hinder efficient data navigation and analysis.

:rotating_light: #6 - Summaries for groups and sub-groups

In Airtable, each field of a group and sub-group can have its own individual summary, in addition to the overall summary at the bottom of the page. Even for every type of data (text. number. data etc) This feature is incredibly useful, as one of the primary purposes of grouping is to quickly access aggregate data. Unfortunately, Baserow, due to its group layout, lacks this capability.

It also give a huge opportunity to the creativity to make different data grouping to have a quick access to necessary conclusions and analysis. And to create different views with different group by structure to quickly access necessary summaries in different data slices and opportunity to drill down deeper if needed.

In the video I show 4 examples of views in airtable which were created just to have a quick access to an aggregated financial data of a real project.

:rotating_light: #7 - Sammaries for all field types - formula and relations

Unfortunately, Baserow currently lacks the capability to provide summaries for results derived from formulas or data obtained through relational fields, such as lookups, counts, and roll-ups. Yet, these types of fields are crucial as they enable a wide range of calculations and are frequently used in data analysis

:rotating_light: #8 - Group By in Formula and Relation Fields

Honestly, this is a second major letdown for me. The inability to use ‘Group By’ for formula fields and relational fields, like link, lookup, count, and rollup, in Baserow is a serious drawback. These fields often hold crucial data, and not being able to group them significantly limits functionality. I feel like this restriction eliminates about 80% of the data that could be effectively used with the ‘Group By’ feature.

:pushpin: #9 - Changing orders in a grouping by setting

In Airtable’s ‘group by’ settings, I can adjust the hierarchy of main and sub-groups by moving elements up or down by drag and drop. However, in Baserow, to change the order, I have to delete and recreate the elements.

:pushpin: #10 - Manual sorting of groups in group by (notion like)

An enhancement that could potentially advance Baserow’s ‘Group By’ functionality beyond Airtable’s is the option for manual sorting of group titles. This feature is particularly useful when dealing with a limited number of groups, such as statuses. It allows for custom arrangement, like placing paid orders at the top and canceled ones at the bottom, or any other order that suits the manager’s needs. This has been effectively implemented in Notion and proves to be very convenient.

1 Like

Thank you for providing such extensive feedback. We appreciate the effort you put into sharing your ideas and making them as clear as possible — thank you!

I will check everything you shared and will get back to you. :ok_hand:

1 Like

I’d like to echo the request for the ability to group by relations. I currently have a Projects table and a Tasks table, where each task is associated with a project. Ideally I would be able to group my Tasks table by Project. Since this currently isn’t supported, I find myself having to create many custom views for each project, which is time consuming and fiddly.

Hi,

There is a workaround for this that I use a lot.

I assume that you want to create a view where the tasks are grouped by project and that the tasks table has a linked field to the projects table.

  1. Create a new formula field in the tasks table
  2. Use the following formula assuming the linked field has the name Project: join(lookup('Project','Name'),'')
  3. Use this new field to group the tasks table.
1 Like

@frederikdc Thanks for the tip, this is working great!

Hey Alexander, apologies for the delay, I finally managed to go through all the recommendations you shared (thanks again for such detailed feedback). So, in general, we do plan to improve the group by feature, and many of the features you mentioned are already in the pipeline.

1-3) Group sections and collapse \ expand; Collapse and expand all groups | sub-groups; Shortcut to auto expand | collapse all groups:

Definitely! The ability to collapse rows in a group by is already in the pipeline. You can see it here: Collapsing of rows in a group by (#2163) · Issues · Baserow / baserow · GitLab. I’ve also added your recommendations on how to make this feature more flexible in the comments.

4) Placement of group titles:

I’ve shared this feedback with our Product Designer.

5) Freezing the Primary field:

We have this issue to add a feature to be able to pin/freeze columns in a table: Pin/freeze columns in a table (#1953) · Issues · Baserow / baserow · GitLab. I will also check with the team to see if this feature will be compatible with the group by.

6) Summaries for groups and sub-groups:

This one is also already in the pipeline: Aggregations per group by (#2164) · Issues · Baserow / baserow · GitLab.

7-8) Summaries for all field types; Group By in Formula and Relation fields:

In 2024, our plan is to focus much more on improving existing features. A key area here will be ensuring all features work with every field type. This also applies to the ‘group by’ feature.

9-10) Changing orders in a grouping by setting; Manual sorting of groups in group by (notion like):

Noted! I’ll discuss this one with the team.

Once I have feedback on the points 9 and 10, I’ll get back to you on this. :raised_hands:

1 Like