- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE1
PAGE1
高级查询基础
1理解SELECT语句的高级用法
在PostgreSQL中,SELECT语句是进行数据查询的核心。除了基本的从表中选择数据,高级用法允许我们进行更复杂的数据操作和分析。以下是一些高级用法的示例:
1.1示例:嵌套查询
假设我们有一个employees表,其中包含员工的id、name和department_id。我们还有一张departments表,包含id和name。我们的目标是找出所有在“销售”部门工作的员工。
--创建示例数据
CREATETABLEdepartments(
idSERIALPRIMARYKEY,
nameVARCHAR(100)NOTNULL
);
CREATETABLEemployees(
idSERIALPRIMARYKEY,
nameVARCHAR(100)NOTNULL,
department_idINTEGERREFERENCESdepartments(id)
);
INSERTINTOdepartments(name)VALUES(销售),(研发);
INSERTINTOemployees(name,department_id)VALUES(张三,1),(李四,1),(王五,2);
--查询在“销售”部门工作的所有员工
SELECTe.name
FROMemployeese
WHEREe.department_idIN(
SELECTd.id
FROMdepartmentsd
WHEREd.name=销售
);
1.2示例:使用WITH子句
WITH子句可以用来定义一个临时的结果集,这个结果集可以在后续的查询中被引用,这有助于简化复杂的查询和提高可读性。
假设我们想要找出每个部门的员工平均年龄,然后找出平均年龄最高的部门。
WITHdepartment_agesAS(
SELECTd.nameASdepartment_name,AVG(e.age)ASaverage_age
FROMdepartmentsd
JOINemployeeseONd.id=e.department_id
GROUPBYd.name
)
SELECTdepartment_name,average_age
FROMdepartment_ages
WHEREaverage_age=(
SELECTMAX(average_age)
FROMdepartment_ages
);
2使用聚合函数和GROUPBY进行数据汇总
聚合函数如COUNT(),SUM(),AVG(),MIN(),MAX()等,可以对数据进行汇总分析。GROUPBY子句则允许我们按一个或多个列的值进行分组,然后对每个组应用聚合函数。
2.1示例:计算每个部门的员工数量
--查询每个部门的员工数量
SELECTd.name,COUNT(e.id)ASemployee_count
FROMdepartmentsd
JOINemployeeseONd.id=e.department_id
GROUPBYd.name;
2.2示例:找出每个部门的最高工资
--查询每个部门的最高工资
SELECTd.name,MAX(e.salary)ASmax_salary
FROMdepartmentsd
JOINemployeeseONd.id=e.department_id
GROUPBYd.name;
3掌握ORDERBY和LIMIT进行结果排序与限制
ORDERBY子句用于对结果集进行排序,而LIMIT子句则用于限制结果集的行数。
3.1示例:按工资降序排序并限制结果
--查询员工信息,按工资降序排序,只显示前10条记录
SELECTe.name,e.salary
FROMemployeese
ORDERBYe.salaryDESC
LIMIT10;
3.2示例:使用OFFSET跳过前几条记录
OFFSET子句可以与LIMIT一起使用,用于跳过结果集的前几条记录,这在分页查询中非常有用。
--查询员工信息,按工资降序排序,跳过前10条记录,显示接下来的10条
SELECTe.name,e.salary
FROMemployeese
ORDERBYe.salaryDESC
LIMIT10OFFSET10;
通过上述示例
您可能关注的文档
- 全栈工程师-软技能与协作工具-Slack_Slack界面与功能详解.docx
- 全栈工程师-数据库管理-PostgreSQL_PostgreSQL监控与故障排查.docx
- 全栈工程师-数据库管理-PostgreSQL_SQL基础查询.docx
- 全栈工程师-数据库管理-PostgreSQL_安全性与权限管理.docx
- 全栈工程师-数据库管理-PostgreSQL_地理空间数据与PostGIS.docx
- 全栈工程师-数据库管理-PostgreSQL_分区表与大型数据管理.docx
- 全栈工程师-数据库管理-PostgreSQL_函数与触发器.docx
- 全栈工程师-数据库管理-PostgreSQL_时间序列数据处理.docx
- 全栈工程师-数据库管理-PostgreSQL_事务与锁.docx
- 全栈工程师-数据库管理-PostgreSQL_视图与存储过程.docx
- GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 中国国家标准 GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs).pdf
- 《GB/T 39560.10-2024电子电气产品中某些物质的测定 第10部分:气相色谱-质谱法(GC-MS)测定聚合物和电子件中的多环芳烃(PAHs)》.pdf
- GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- 中国国家标准 GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 中国国家标准 GB/T 39560.302-2024电子电气产品中某些物质的测定 第3-2部分:燃烧-离子色谱法(C-IC)筛选聚合物和电子件中的氟、氯和溴.pdf
- GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样.pdf
- 《GB/T 39560.2-2024电子电气产品中某些物质的测定 第2部分:拆解、拆分和机械制样》.pdf
- 《GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯》.pdf
- 中国国家标准 GB/T 39560.303-2024电子电气产品中某些物质的测定 第3-3部分:配有热裂解/热脱附的气相色谱-质谱法(Py/TD-GC-MS)筛选聚合物中的多溴联苯、多溴二苯醚和邻苯二甲酸酯.pdf
文档评论(0)