diff --git a/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj b/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj index 81e2c5aac533352498512820bda0a5cd29fb32df..8047a133319a61e0a7de853cb6a8c6abec632a02 100644 --- a/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj +++ b/modules/drivers/druid/src/metabase/driver/druid/query_processor.clj @@ -61,8 +61,7 @@ this) (defmethod ->rvalue :aggregation [[_ index]] - (let [ag (nth (:aggregation *query*) index) - ag-type (:aggregation-type ag)] + (let [[ag-type :as ag] (nth (:aggregation *query*) index)] (cond (= [:count] ag) diff --git a/test/metabase/timeseries_query_processor_test.clj b/test/metabase/timeseries_query_processor_test.clj index 99fe9ed069041dcdf11e56d9b15a7ec56d55604f..d4538380600fc33a7382a4cf223ab3493a61026a 100644 --- a/test/metabase/timeseries_query_processor_test.clj +++ b/test/metabase/timeseries_query_processor_test.clj @@ -897,3 +897,17 @@ (rows (data/run-mbql-query checkins {:aggregation [[:sum $venue_latitude] [:sum $venue_price]]})))) + +;; Make sure sorting by aggregations works correctly for Timeseries queries (#9185) +(expect-with-timeseries-dbs + [["Steakhouse" 3.6] + ["Chinese" 3.0] + ["Wine Bar" 3.0] + ["Japanese" 2.7]] + (format-rows-by [str (partial u/round-to-decimals 1)] + (rows + (data/run-mbql-query checkins + {:aggregation [[:avg $venue_price]] + :breakout [[:field-id $venue_category_name]] + :order-by [[:desc [:aggregation 0]]] + :limit 4}))))