diff --git a/frontend/src/metabase/lib/query.js b/frontend/src/metabase/lib/query.js
index 6ad1e12a27bd0c5961a83981cf32ae2f7cbfa7ef..5070477ff69d6820c9ae44be21b0f8b6953d56fc 100644
--- a/frontend/src/metabase/lib/query.js
+++ b/frontend/src/metabase/lib/query.js
@@ -487,11 +487,15 @@ var Query = {
 
     getAggregationDescription(tableMetadata, query, options) {
         return conjunctList(Query.getAggregations(query).map(aggregation => {
+            if (NamedClause.isNamed(aggregation)) {
+                return [NamedClause.getName(aggregation)];
+            }
+            if (AggregationClause.isMetric(aggregation)) {
+                let metric = _.findWhere(tableMetadata.metrics, { id: AggregationClause.getMetric(aggregation) });
+                let name = metric ? metric.name : "[Unknown Metric]";
+                return [options.jsx ? <span className="text-green text-bold">{name}</span> : name];
+            }
             switch (aggregation[0]) {
-                case "METRIC":
-                    let metric = _.findWhere(tableMetadata.metrics, { id: aggregation[1] });
-                    let name = metric ? metric.name : "[Unknown Metric]";
-                    return [options.jsx ? <span className="text-green text-bold">{name}</span> : name];
                 case "rows":      return           ["Raw data"];
                 case "count":     return              ["Count"];
                 case "cum_count": return   ["Cumulative count"];
diff --git a/frontend/test/unit/lib/query.spec.js b/frontend/test/unit/lib/query.spec.js
index 2f9aade317f18a2b2f388d67d4f2b02d5b4fe6f6..c548429682a51359782f86dfd920993c49f3cda9 100644
--- a/frontend/test/unit/lib/query.spec.js
+++ b/frontend/test/unit/lib/query.spec.js
@@ -1,6 +1,12 @@
 import Query from "metabase/lib/query";
 import { createQuery, AggregationClause, BreakoutClause } from "metabase/lib/query";
 
+const mockTableMetadata = {
+    display_name: "Order",
+    fields: [
+        { id: 1, display_name: "Total" }
+    ]
+}
 
 describe('Query', () => {
     describe('createQuery', () => {
@@ -284,6 +290,20 @@ describe('Query', () => {
     })
 });
 
+describe("generateQueryDescription", () => {
+    it("should work with multiple aggregations", () => {
+        expect(Query.generateQueryDescription(mockTableMetadata, {
+            source_table: 1,
+            aggregation: [["count"], ["sum", ["field-id", 1]]]
+        })).toEqual("Orders, Count and Sum of Total")
+    })
+    it("should work with named aggregations", () => {
+        expect(Query.generateQueryDescription(mockTableMetadata, {
+            source_table: 1,
+            aggregation: [["named", ["sum", ["field-id", 1]], "Revenue"]]
+        })).toEqual("Orders, Revenue")
+    })
+})
 
 describe('AggregationClause', () => {