Grouping by field data

Airtable style grouping.

Ability to group different records according to various fields.
e.g.

image

4 Likes

Hello @shrey! Thanks for suggesting a new feature. We’ve already had a few requests to add record grouping to Baserow, here is the link to the issue on GitLab: Group rows based on field value (#143) · Issues · Bram Wiepjes / baserow · GitLab.

It will be a bit complicated for us to implement this feature from the technical point of view because we have a different technical approach than Airtable has. But we love this idea and do plan to work on it but probably not in the nearest months :pensive:

2 Likes

:+1: for me!
I was just searching the forum for this feature.

~P

1 Like

I was just going to post the same feature request

Hello @mahmouds12, @Baserow_rookie! We received quite a lot of requests to build this feature, but as I explained above, it will be a bit complicated from a technical point of view, so we decided to focus on other features in the nearest months. Anyway, record grouping is in our plans, and as soon as I have any news on this functionality, I’ll share them here.

2 Likes

I started tracking business expenses on Baserow and group-by would come in extremely handy.
alternatively, having drag-select show the sum of numeric fields (like in excel) would temporarily alleviate the need for group by.

Hey @lucw, noted! Thanks for sharing the suggestion :raised_hands:

Hey just wanted to chime in. I looked briefly at the linked gitlab isssue and and airtable screen shot and it looks like there might be a couple ways to do this. Airtable looks like it’s still listing each record but almost sorting them with some visual breaks in between. Is that right?

I have a specific use case where i want to be able to group entries to a single line. The only way i can think of it might be like a mysql “group by” query. For example, I have a list of donations made by a bunch of users. If a user makes multiple donations, i’d like to be able to see a list with the total they’ve contributed, not as individual donations. A mysql query might look like select email, name, sum(amount) as amount from table group by email. This would take all the rows with matching emails, the first name from any record, and the sum of all the amounts, and display them in a single row.

I just wanted to propose that as it seems like the current feature is going in a different direction.

Thanks @dab! @bram could you please check out this suggestion?

When we’re going to build the group feature, it will for sure also be possible to see a sum of a cell value within the group. The part that makes it so difficult to build this feature is related to our paginated approach. If you have many rows in a single table, we’re not fetching them all at once, but just 120 rows that are closest to the visible ones. We use the top scroll offset to calculate which row index the user is looking at. If we add another dimension like grouped values, it’s going to be very difficult to figure out which rows the user is looked at. The benefit of the paginated approach is that it allows users to store much more data in their table, but it also makes it more complicated to build.

Perhaps for the first version of group by we just don’t support pagination for grouped views. I think most Group By views will aggregate the rows only to a few hundred “aggregated” rows and as such we can support this simple use case and get 80% of the benefit of the feature without needing pagination at all.

How would that work UX wise, do we not just not allow grouping by showing an error if the row count is higher than a specific number? What makes you think it aggregates the rows only to a few hundred rows? Applying a group by doesn’t result in a lower visible row count. Or do you mean that most users are not storing that much data in their data?

Doesn’t a group by, aggregate many rows into single rows? Generally when using Group bys you are summarizing large data sets down into much much smaller data sets. So yup I do believe that for most use cases, users will be using a group by to generate a much much smaller set of rows out of the original set.

UX wise, we can just show a loading icon, if it’s too many rows to fetch and timeouts occur we could even show a warning telling to user to increase the grouping of the group by.

I don’t think V1 of this feature needs fancy things like being able to expand a “grouped” row into all of the rows that grouped into it etc. Just being able to create simple views which show the results of a GROUP BY and nothing more complicated is a good starting point IMO and already would help most users.

Ah I see what you mean, the grouping by that these users are looking for is probably different compared to PosgtreSQL group by function for example. With PostgreSQL group by, it can indeed result into fewer rows, but with tools similar tools like Airtable, it results into the same amount, just visually grouped by the group by field.

I’m curious whether the PostgreSQL inspired group by would work for most users. If it does, we should be able to implement that without the complexity described above.

Adding my voice here - I just installed it today, and imported data from Airtable.

Then immediately went to Group it to find it missing.

I’ll wait to use Baserow until Group is implemented, as I use Group by in every table and base in Airtable.

Thanks for making this - and for listening.

1 Like

Hello @travelsf, first of all, welcome to the Baserow community :wave:

This feature is the most awaited by our community, and we added it to the roadmap for 2023. As the first step, we plan to do technical research, and after that, I’ll have more details on if/when to expect row grouping to be released :slightly_smiling_face:

Hi! Then we first implemented Airtable in out organization, the accountant said “awesome” about group by feature.
Now I’m looking for the solution to migrate from airtable, and “group by” is crutial for the users. Will wait with desire till your team make this feature!

:eyes:

Hey, Baserow community :wave:

I have an exciting proposal that I believe will greatly enhance the upcoming group by functionality in Baserow, surpassing what is currently available in Airtable. Taking inspiration from Notion, I suggest the implementation of manual sorting within the group by feature.

:one: Notion already offers the valuable capability to manually arrange and prioritize data within group by. This feature has proven to be incredibly useful and convenient for users. Please take a look at this screenshot from Notion showcasing the manual sorting functionality:

By incorporating this feature into Baserow, we can significantly enhance the user experience and provide greater flexibility in organizing data. Users will have the ability to customize the order of their tasks, projects, or any other data within groups, empowering them to create personalized workflows that best suit their needs.

I believe that implementing manual sorting in Baserow’s group by feature will be a substantial step forward and will differentiate Baserow from its competitors.

1 Like

:two: Additionally, I would like to highlight another remarkable feature that is currently missing in Airtable but present in Notion. It is the ability to select date range grouping within the group by functionality for date fields.

In Airtable, data is grouped separately for each day, which can become cumbersome when dealing with a large dataset. On the other hand, in Notion, users can choose date ranges to group data by weeks, months, and more. This feature provides immense convenience and flexibility in organizing and analyzing data over different time periods.

To work around this limitation in our current Airtable database, we had to create a separate field where we by some formulas input the appropriate period based on the date and group our data accordingly. Having native support for date range grouping in Baserow would eliminate the need for such workarounds and streamline the data organization process.

:three: Furthermore, it would be greatly appreciated if the proposed enhancement also includes support for nested grouping levels, allowing us to perform group by operations on up to three levels of nesting, similar to Airtable.

:four: Lastly, when adding an item within such a nested group, it would be fantastic if the corresponding fields that define the grouping are automatically filled in.

I believe that by incorporating these additional features inspired by Notion and Airtable, Baserow can further establish itself as a powerful and user-friendly database platform.

Here is a link to a comprehensive video on YouTube that explains Notion group by in depth - Notion's New Grouping Feature is a Game-Changer - YouTube