我有一个相对的,不复杂但很长的查询字符串,如:
SELECT array_to_json(array_agg(row_to_json(exp)))
FROM (
SELECT label as name, (
SELECT array_to_json(array_agg(row_to_json(opt)))
FROM (
SELECT value as name, count as size FROM countoptions
) opt
) as children
FROM countoptions GROUP BY label
) exp;
稍后这个查询会变得更复杂,所以我正在寻找一种技术来将查询拆分为更易读的部分。
答案 0 :(得分:0)
你正在寻找Common Table Expressions个什么?
WITH提供了一种编写辅助语句以便在更大的范围内使用的方法 查询。这些语句通常称为公用表 表达式或CTE可以被认为是定义临时表 仅存在于一个查询中。 WITH中的每个辅助语句 子句可以是SELECT,INSERT,UPDATE或DELETE;和WITH子句 本身附加到一个主语句,也可以是SELECT, INSERT,UPDATE或DELETE