diff --git a/config/ci_test.yaml.example b/config/ci_test.yaml.example
index 4a6d58584c241d0fdb69859df7a45cad4939bcc8..e532112d09250f186c9f60e7c243daee56b01b5f 100644
--- a/config/ci_test.yaml.example
+++ b/config/ci_test.yaml.example
@@ -93,6 +93,16 @@ schema:
                 - "dim:6"
             metrics:
                 - "met:9"
+        -
+            alias: "view 9"
+            data: "test/postgres/fixtures/view9.json"
+            origin: false
+            dimensions:
+                - "dim:2"
+            metrics:
+                - "met:5"
+                - "met:6"
+                - "met:7"
     metrics:
         -
             name: "met:0"
diff --git a/src/adapter/postgres.spec.ts b/src/adapter/postgres.spec.ts
index 8b77b18409a350412f1b99eceac53c716f45a535..7f1367bcc50919fa32d480375b260bd29bd84841 100644
--- a/src/adapter/postgres.spec.ts
+++ b/src/adapter/postgres.spec.ts
@@ -298,4 +298,23 @@ describe("postgres adapter", () => {
             done();
         });
     });
+
+    it("should get data using COUNT when the view is not origin", (done) => {
+        let view = adapterScenario.notOriginCount;
+        adapter.getDataFromView(view, (err, result) => {
+            expect(err).to.be.a("null");
+            expect(result).to.be.an("array");
+            expect(result).to.have.length(5);
+            expect(result[0]).to.be.an("object");
+            let keys: string[] = [];
+            keys = keys.concat(view.metrics.map((item) => item.name));
+            keys = keys.concat(view.dimensions.map((item) => item.name));
+            result.forEach((row) => {
+                expect(row).to.be.an("object");
+                expect(row).to.have.all.keys(keys);
+            });
+
+            done();
+        });
+    });
 });
diff --git a/test/postgres/fixtures/view9.json b/test/postgres/fixtures/view9.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c5726a8f1f56fd49e1c96971a4fa580b1640d9b
--- /dev/null
+++ b/test/postgres/fixtures/view9.json
@@ -0,0 +1,7 @@
+[
+{"dim:2":"1","met:5":"1","met:6":"1","met:7":"1"},
+{"dim:2":"2","met:5":"2","met:6":"1","met:7":"1"},
+{"dim:2":"3","met:5":"3","met:6":"1","met:7":"1"},
+{"dim:2":"4","met:5":"4","met:6":"1","met:7":"1"},
+{"dim:2":"5","met:5":"5","met:6":"1","met:7":"1"}
+]
diff --git a/test/scenario.ts b/test/scenario.ts
index fa42a2207b4a37b80c3f5a0ad26d3ae31738fc62..19330b498258c9f25e62202e57b628d82df87227 100644
--- a/test/scenario.ts
+++ b/test/scenario.ts
@@ -51,6 +51,7 @@ interface AdapterScenario {
     gtltView: View;
     geleView: View;
     notMatchFilterView: View;
+    notOriginCount: View;
 }
 
 interface DataCtrlScenario {
@@ -299,6 +300,13 @@ const withSelView = new View({
     childViews: [views[0], views[4]]
 });
 
+const notOriginCount = new View({
+    metrics: [mets[5], mets[6], mets[7]],
+    dimensions: [dims[2]],
+    materialized: true,
+    origin: false
+});
+
 export const engineScenario: EngineScenario = {
     metrics: mets,
     dimensions: dims,
@@ -322,7 +330,8 @@ export const adapterScenario: AdapterScenario = {
     notEqualView: notEqualView,
     gtltView: gtltView,
     geleView: geleView,
-    notMatchFilterView: notMatchFilterView
+    notMatchFilterView: notMatchFilterView,
+    notOriginCount: notOriginCount
 };
 
 export const dataCtrlScenario: DataCtrlScenario = {