fix header order
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
index 7056f05..f83eb2a 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/analyze/AnalyzeVisitor.java
@@ -1231,7 +1231,8 @@
 
     // concat path and construct path pattern tree
     PathPatternTree patternTree = new PathPatternTree();
-    for (PartialPath path : fetchWindowBatchStatement.getQueryPaths()) {
+    List<PartialPath> queryPaths = fetchWindowBatchStatement.getQueryPaths();
+    for (PartialPath path : queryPaths) {
       patternTree.appendFullPath(path);
     }
 
@@ -1244,9 +1245,16 @@
 
     // set source
     List<MeasurementPath> measurementPaths = schemaTree.getAllMeasurement();
+    Map<String, MeasurementPath> pathNameToMeasurementPath = new HashMap<>();
+    for (MeasurementPath measurementPath : measurementPaths) {
+      pathNameToMeasurementPath.put(measurementPath.toString(), measurementPath);
+    }
+
     Set<Expression> sourceExpressions =
-        measurementPaths.stream()
-            .map(TimeSeriesOperand::new)
+        queryPaths.stream()
+            .map(
+                partialPath ->
+                    new TimeSeriesOperand(pathNameToMeasurementPath.get(partialPath.toString())))
             .collect(Collectors.toCollection(LinkedHashSet::new));
     for (Expression sourceExpression : sourceExpressions) {
       analyzeExpression(analysis, sourceExpression);
@@ -1281,10 +1289,10 @@
     } else {
       // set output
       List<ColumnHeader> columnHeaders =
-          measurementPaths.stream()
+          sourceExpressions.stream()
               .map(
-                  measurementPath ->
-                      new ColumnHeader(measurementPath.toString(), measurementPath.getSeriesType()))
+                  expression ->
+                      new ColumnHeader(expression.toString(), analysis.getType(expression)))
               .collect(Collectors.toList());
       analysis.setRespDatasetHeader(new DatasetHeader(columnHeaders, false));
     }