psql how run
how run
窗口函数执行
https://www.postgresqltutorial.com/postgresql-window-function/
窗口函数始终在 JOIN 、 WHERE 、 GROUP BY 和 HAVING 子句之后以及在评估顺序中的最后一个 ORDER BY 子句
example
SELECT
group_name,
AVG (price)
FROM
products
INNER JOIN product_groups USING (group_id)
GROUP BY
group_name;
-- 如何执行的
这个 SQL 查询是用来计算每个产品组的平均价格的。查询的执行步骤如下:
-
FROM products: 查询开始于从products表中选择数据。 -
INNER JOIN product_groups USING (group_id):products表通过group_id字段与product_groups表进行内连接(INNER JOIN)。内连接会合并两个表中的行,只保留两个表中都有匹配group_id的那些行。USING (group_id)是一个连接条件,它表明products表和product_groups表中用于连接的共同列是group_id。 -
SELECT group_name, AVG(price): 查询的选择列表包含两个列:group_name和price列的平均值。这里的group_name来自于product_groups表,而price来自于products表。 -
GROUP BY group_name: 这个GROUP BY子句指示数据库按照group_name列的值对结果集进行分组。每个不同的group_name值都会形成一个分组,对于每个分组,数据库将计算其price列值的平均值(AVG(price))。
总结一下,这个查询的执行过程是:
- 先 通过
group_id将products表和product_groups表连接起来。 - 然后,按照
product_groups表中的group_name将结果集分组。 - 对于每个组,计算
products表中对应行的price列的平均值。 - 最后,选择每个产品组的名称和对应的平均价格。
查询的结果将是一个包含两列的列表,一列是 group_name,另一列是该组中所有产品的平均价格。