怎么给网站刷流量,只做二手奢侈品的网站,珠海手机网站开发,深圳市住房和建设局工程交易with cte as的用法
查询的一个有用工具#xff0c;允许创建临时命名结果集#xff0c;可在查询中多次引用相同的子查询结果#xff0c;可以提高查询的可读性和维护性
WITH cte_name (column1, column2, ...) AS (-- 这里是子查询SELECT column1, column2, ...FROM your_ta…with cte as的用法
查询的一个有用工具允许创建临时命名结果集可在查询中多次引用相同的子查询结果可以提高查询的可读性和维护性
WITH cte_name (column1, column2, ...) AS (-- 这里是子查询SELECT column1, column2, ...FROM your_tableWHERE some_condition
)
-- 主查询
SELECT *
FROM cte_name;
子查询
标量子查询返回单个值通常用于比较运算符中他们嵌套在主查询的条件中
-- 查找所有工资高于公司平均工资的员工
SELECT employee_name
FROM employees
WHERE salary (SELECT AVG(salary) FROM employees);
行子查询 返回单行多列通常将子查询的结果集整行引入主查询中列子查询返回单列多行通常将子查询结果集作为一个值列表传递给主查询。表子查询多表联查
窗口函数
rank over (partition by order_code order by dd desc) partition by 指定分区的表达式如果不指定整个结果集将作为一个分区指定分区将使排名在每个分区内单独计算 注意rank()函数可能导致排名值不连续多个行具有相同的值将共享相同的排名使用dense_rank()可去重
窗口函数原理
在不破坏原始数据行的情况下对每一行进行聚合或分析 排序order by、分组(partition by)、计算针对分组内数据行而不是整个结果集、结果窗口函数的结果值附加到每一行意味着每个数据行都有一个关联的窗口函数结果
常用聚合函数
sum、arg等
窗口函数分类
排名函数 SELECT employee_name, salary, RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS ranking FROM employees;
累积函数 SELECT order_date, order_amount, SUM(order_amount) OVER (ORDER BY order_date) AS cumulative_total FROM orders;
分组聚合函数 SELECT employee_name, department, salary, AVG(salary) OVER (PARTITION BY department) AS avg_salary FROM employees;
行号函数通常用于合并字段值相同的行 SELECT product_name, ROW_NUMBER() OVER (ORDER BY sales_volume DESC) AS row_num FROM products;