strarrocks创建视图排序不起作用问题

首先创建一个表person
CREATE TABLE person (
name VARCHAR(32) NOT NULL COMMENT “名称”,
age BIGINT NOT NULL COMMENT “年龄”
)ENGINE=OLAP
COMMENT “人员表”
DISTRIBUTED BY HASH(name) BUCKETS 1
PROPERTIES(
“replication_num” = “1”,
“replicated”=“true”,
“in_memory”=“false”,
“storage_format”=“DEFAULT”,
“enable_persistent_index”=“false”
)

录入数据
name age
张X 12
李X 32
王X 22
刘X 41

创建视图
CREATE OR REPLACE VIEW person_view AS SELECT * FROM person ORDER BY age DESC

SELECT * FROM person ORDER BY age DESC执行结果是
name age
刘X 41
李X 32
王X 22
张X 12

最后查询视图
SELECT * FROM person_view;
返回结果仍然是
name age
张X 12
李X 32
王X 22
刘X 41

逻辑视图本身就是个表,并不实际存储数据,所有针对视图的查询相当于该视图对应查询语句之上的子查询。

  • SELECT * FROM person_view; 相当于 select * from (SELECT * FROM person ORDER BY age DESC) a ; 这种子查询中的 order by 对于外层的查询实际并不能生效的。

  • 逻辑物化视图要查order by 的话,需要在外层加order by,SELECT * FROM person_view ORDER BY age DESC