@@ -94,6 +94,7 @@ describeDuckDB("combined operations", (getClient) => {
9494 "West|Sales" : 165134.77900000007 ,
9595 } ,
9696 ] ) ;
97+
9798 await view . delete ( ) ;
9899 } ) ;
99100
@@ -124,6 +125,7 @@ describeDuckDB("combined operations", (getClient) => {
124125 "West|Sales" : null ,
125126 } ,
126127 ] ) ;
128+
127129 await view . delete ( ) ;
128130 } ) ;
129131
@@ -155,6 +157,93 @@ describeDuckDB("combined operations", (getClient) => {
155157 "West|Sales" : null ,
156158 } ,
157159 ] ) ;
160+
161+ await view . delete ( ) ;
162+ } ) ;
163+
164+ test ( "flat + multi group_by + sort" , async function ( ) {
165+ const table = await getClient ( ) . open_table ( "memory.superstore" ) ;
166+ const view = await table . view ( {
167+ columns : [ "Sales" ] ,
168+ group_by : [ "Region" , "Category" ] ,
169+ sort : [ [ "Sales" , "desc" ] ] ,
170+ aggregates : { Sales : "sum" } ,
171+ group_rollup_mode : "flat" ,
172+ } ) ;
173+ const json = await view . to_json ( { start_row : 0 , end_row : 5 } ) ;
174+ expect ( json ) . toEqual ( [
175+ {
176+ __ROW_PATH__ : [ "West" , "Furniture" ] ,
177+ Sales : 252612.7435000003 ,
178+ } ,
179+ {
180+ __ROW_PATH__ : [ "West" , "Technology" ] ,
181+ Sales : 251991.83199999997 ,
182+ } ,
183+ {
184+ __ROW_PATH__ : [ "West" , "Office Supplies" ] ,
185+ Sales : 220853.24900000007 ,
186+ } ,
187+ {
188+ __ROW_PATH__ : [ "East" , "Technology" ] ,
189+ Sales : 264973.9810000003 ,
190+ } ,
191+ {
192+ __ROW_PATH__ : [ "East" , "Furniture" ] ,
193+ Sales : 208291.20400000009 ,
194+ } ,
195+ ] ) ;
196+ await view . delete ( ) ;
197+ } ) ;
198+
199+ test ( "flat + multi group_by + split_by + sort" , async function ( ) {
200+ const table = await getClient ( ) . open_table ( "memory.superstore" ) ;
201+ const view = await table . view ( {
202+ columns : [ "Sales" ] ,
203+ group_by : [ "Region" , "Category" ] ,
204+ split_by : [ "Ship Mode" ] ,
205+ sort : [ [ "Sales" , "desc" ] ] ,
206+ aggregates : { Sales : "sum" } ,
207+ group_rollup_mode : "flat" ,
208+ } ) ;
209+ const json = await view . to_json ( { start_row : 0 , end_row : 5 } ) ;
210+ expect ( json ) . toEqual ( [
211+ {
212+ __ROW_PATH__ : [ "West" , "Furniture" ] ,
213+ "First Class|Sales" : 40018.829499999985 ,
214+ "Same Day|Sales" : 14527.978000000001 ,
215+ "Second Class|Sales" : 54155.6555 ,
216+ "Standard Class|Sales" : 143910.28049999996 ,
217+ } ,
218+ {
219+ __ROW_PATH__ : [ "West" , "Technology" ] ,
220+ "First Class|Sales" : 61107.98900000001 ,
221+ "Same Day|Sales" : 19218.053999999993 ,
222+ "Second Class|Sales" : 38610.979999999996 ,
223+ "Standard Class|Sales" : 133054.809 ,
224+ } ,
225+ {
226+ __ROW_PATH__ : [ "West" , "Office Supplies" ] ,
227+ "First Class|Sales" : 28635.06999999996 ,
228+ "Same Day|Sales" : 9857.678000000002 ,
229+ "Second Class|Sales" : 52572.79199999999 ,
230+ "Standard Class|Sales" : 129787.70900000003 ,
231+ } ,
232+ {
233+ __ROW_PATH__ : [ "East" , "Technology" ] ,
234+ "First Class|Sales" : 47693.312999999995 ,
235+ "Same Day|Sales" : 21349.464999999997 ,
236+ "Second Class|Sales" : 29304.490000000005 ,
237+ "Standard Class|Sales" : 166626.71300000005 ,
238+ } ,
239+ {
240+ __ROW_PATH__ : [ "East" , "Furniture" ] ,
241+ "First Class|Sales" : 29410.643999999997 ,
242+ "Same Day|Sales" : 12852.570999999996 ,
243+ "Second Class|Sales" : 44035.937000000005 ,
244+ "Standard Class|Sales" : 121992.05199999997 ,
245+ } ,
246+ ] ) ;
158247 await view . delete ( ) ;
159248 } ) ;
160249
@@ -167,6 +256,7 @@ describeDuckDB("combined operations", (getClient) => {
167256 sort : [ [ "profitmargin" , "desc" ] ] ,
168257 aggregates : { profitmargin : "avg" } ,
169258 } ) ;
259+
170260 const json = await view . to_json ( ) ;
171261 expect ( json ) . toEqual ( [
172262 {
@@ -190,6 +280,7 @@ describeDuckDB("combined operations", (getClient) => {
190280 profitmargin : - 10.407293926323575 ,
191281 } ,
192282 ] ) ;
283+
193284 await view . delete ( ) ;
194285 } ) ;
195286} ) ;
0 commit comments