Quiver - Top Rows partitioned

Hi, I’m trying to get the top record per category in property A based on the value of property B in Quiver. If I were to use Pipeline Builder, I’d use the “Top Rows” transformation to do exactly this.

How can I do this in Quiver without using time series?

More generally, why are there no window and aggregation capabilities in Quiver for regular tabular data?

Hi @pedro,

I am guessing by “tabular data” you are referring to Transform tables in Quiver. If so, you are right that we don’t have a good way of doing something equivalent to a “Top Rows” transformation in Quiver. I think the ability to create a pivot table from a Transform table would get you close and we are planning to add support for that soon. In the meantime, if you are working with object sets I would suggest checking if you can use the current pivot table card to achieve this.

Hope that helps!

Hey thanks for the answer! Honestly I couldn’t even do it with a pivot table. How do you specify that you just want to limit to, for example, the top 3 by category?

Yes when I tried doing this I also got stuck on that step :face_with_diagonal_mouth:. I think adding some kind of “limit” configuration for table joins would enable this workflow. Will flag this internally as a requested feature.

I appreciate that, this is super table stakes for any visualization tool. And honestly even the Workshop Object list widget should have a limit parameter in the sort.

@pedro can you convert to a “Materialization” (the underlying dataset) and use an Expression card? Window functions are available in the expression language, so something like rank() OVER (PARTITION BY ...) might work. Datasets have much more expressive querying/analytical capabilities than objects. Quiver’s support for dataset transforms isn’t quite as robust as Pipeline Builder, but the expression card should be able to serve most use-cases.