diff --git a/e2e/test/scenarios/visualizations-tabular/pivot_tables.cy.spec.js b/e2e/test/scenarios/visualizations-tabular/pivot_tables.cy.spec.js
index addd8ad31332c7b7aff2908d7ecccb9d7197ad66..1020ea3337487d57a2a2bf056219601d81f70a8c 100644
--- a/e2e/test/scenarios/visualizations-tabular/pivot_tables.cy.spec.js
+++ b/e2e/test/scenarios/visualizations-tabular/pivot_tables.cy.spec.js
@@ -1166,7 +1166,7 @@ describe("scenarios > visualizations > pivot tables", { tags: "@slow" }, () => {
       visualization_settings: {
         "pivot_table.column_split": {
           rows: ["CATEGORY", "EAN"],
-          columns: ["count"],
+          columns: [],
           values: ["count"],
         },
       },
diff --git a/src/metabase/query_processor/pivot.clj b/src/metabase/query_processor/pivot.clj
index 660e9c5bb80eebafe2ddf7aac81bfc4f9a22ff6c..3cbf5957c350b7032fd7839f102d7bbe8ad6a1eb 100644
--- a/src/metabase/query_processor/pivot.clj
+++ b/src/metabase/query_processor/pivot.clj
@@ -357,13 +357,14 @@
         metadata-provider  (or (:lib/metadata query)
                                (lib.metadata.jvm/application-database-metadata-provider (:database query)))
         query              (lib/query metadata-provider query)
-        index-in-breakouts (into {}
-                                 (comp (filter (comp #{:source/breakouts} :lib/source))
-                                       (map-indexed (fn [i column] [(:name column) i])))
-                                 (lib/returned-columns query))
+        returned-columns   (lib/returned-columns query)
+        {:source/keys [aggregations breakouts]} (group-by :lib/source returned-columns)
+        column-name->index (into {}
+                                 (map-indexed (fn [i column] [(:name column) i]))
+                                 (concat breakouts aggregations))
         process-columns    (fn process-columns [column-names]
                              (when (seq column-names)
-                               (into [] (keep index-in-breakouts) column-names)))
+                               (into [] (keep column-name->index) column-names)))
         pivot-opts         {:pivot-rows     (process-columns rows)
                             :pivot-cols     (process-columns columns)
                             :pivot-measures (process-columns values)}]
diff --git a/test/metabase/api/downloads_exports_test.clj b/test/metabase/api/downloads_exports_test.clj
index c54690639cc54179b5a767dddc67f45f0f31f885..4ddb1a7cf505e209b23e3c7a8c80247180877916 100644
--- a/test/metabase/api/downloads_exports_test.clj
+++ b/test/metabase/api/downloads_exports_test.clj
@@ -1096,11 +1096,9 @@
                                                                                 [:avg [:field (mt/id :products :rating) {:base-type :type/Float}]]]
                                                                  :breakout     [[:field (mt/id :products :category) {:base-type :type/Text}]]}}
                                        :visualization_settings {:pivot_table.column_split
-                                                                {:rows    [[:field (mt/id :products :category) {:base-type :type/Text}]]
+                                                                {:rows    ["CATEGORY"]
                                                                  :columns []
-                                                                 :values  [[:aggregation 1]
-                                                                           [:aggregation 0]
-                                                                           [:aggregation 2]]}
+                                                                 :values  ["sum" "count" "avg"]}
                                                                 :column_settings
                                                                 {"[\"name\",\"count\"]" {:column_title "Count Renamed"}
                                                                  "[\"name\",\"sum\"]"   {:column_title "Sum Renamed"}
@@ -1135,10 +1133,9 @@
                                                                  :breakout     [[:field (mt/id :products :category) {:base-type :type/Text}]
                                                                                 [:field (mt/id :products :created_at) {:base-type :type/DateTime :temporal-unit :year}]]}}
                                        :visualization_settings {:pivot_table.column_split
-                                                                {:rows    [[:field (mt/id :products :created_at) {:base-type :type/DateTime :temporal-unit :year}]
-                                                                           [:field (mt/id :products :category) {:base-type :type/Text}]]
+                                                                {:rows    ["CREATED_AT" "CATEGORY"]
                                                                  :columns []
-                                                                 :values  [[:aggregation 0]]}
+                                                                 :values  ["count"]}
                                                                 :column_settings
                                                                 {"[\"name\",\"count\"]" {:column_title "Count Renamed"}}}}]
         (let [expected-header   ["Created At" "Category" "Count"]