本文將簡單介紹with子句的格式和用法
1、目的
通過創建一張(或多張)臨時表,實現數據的抽離,從而方便進行數據的比較
2、格式
//創建2張臨時表,并在這2張臨時表的基礎上進行查詢
select查詢兩個表的內容?with
temporary_table1_name(column_name,column_name) as
(select xxx
from xxx),
temporary_table2_name(column_name,column_name) as
(select xxx
group by多表查詢?from xxx)
select xxx
from temporary_table1_name,temporary_table2_name;
在上述語句中
temporary_table_name及其后面的column_name 都可以由自己指定
注意:創建的臨時表僅可以用于此次查詢,并不會寫入數據庫的物理內存中
MySQL 分頁查詢、3、實例
在上述的instructor表中,實現以下查詢:
找出 院系總工資 高于 所有院系的平均總工資的 院系名稱
思路如下:
(1)創建臨時表1,使用group by和SUM函數計算各個院系的總工資;
(2)創建臨時表2,對臨時表1的所有行 求平均值,從而得到所有院系的平均總工資;
mysql數據庫筆記、(3)用常規的select+where語句在2張臨時表的基礎上進行查詢
with
dept_total(dept_name,value) as
(select dept_name, SUM(salary)
from instructor
group by dept_name),
MySQL兩張表聯合查詢SQL語句。dept_total_avg(value) as
(select AVG(salary)
from dept_total)
select dept_name
from dept_total, dept_total_avg
where dept_total.value>=dept_total_avg.value;
mysql innodb,結果示意圖如下:
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态