当前位置: 首页 > article >正文

【Oracle数据库指南】第03篇:Oracle SQL分组统计与排序——GROUP BY、HAVING与ORDER BY深度解析

上一篇【第02篇】Oracle SQL查询高级技巧——条件与函数下一篇【第04篇】Oracle多表查询与连接操作——JOIN的全面解析摘要本文详细讲解Oracle SQL中的分组统计功能包括分组函数COUNT、SUM、AVG、MAX、MIN等的用法、GROUP BY子句的多列分组技巧、HAVING对分组结果的过滤以及ORDER BY的高级排序技巧。通过丰富的实战案例帮助读者掌握数据汇总与报表生成的核心技能。一、引言数据分析的核心需求之一是汇总统计。无论是统计各部门员工人数、计算各地区销售额还是找出最高薪资都离不开Oracle的分组统计功能。Oracle分组统计的核心语句结构如下SELECT 分组列, 分组函数 FROM 表名 WHERE 行级过滤条件分组前过滤 GROUP BY 分组列 HAVING 分组过滤条件分组后过滤 ORDER BY 排序列理解这六个子句的执行顺序是掌握分组查询的关键FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY二、分组函数详解2.1 基础分组函数-- COUNT计数SELECTCOUNT(*)FROMemployees;-- 统计总行数包含NULLSELECTCOUNT(commission_pct)FROMemployees;-- 统计非NULL的值的个数SELECTCOUNT(DISTINCTdepartment_id)FROMemployees;-- 统计不重复的部门数-- SUM求和忽略NULLSELECTSUM(salary)FROMemployees;SELECTSUM(salary*NVL(commission_pct,0))AStotal_commissionFROMemployees;-- AVG平均值忽略NULLSELECTAVG(salary)FROMemployees;SELECTAVG(commission_pct)FROMemployees;-- 只计算有提成的员工-- 与包含NULL的平均值对比SELECTSUM(commission_pct)/COUNT(*)ASavg_including_nullFROMemployees;-- MAX/MIN最大值/最小值忽略NULL可用于日期和字符串SELECTMAX(salary),MIN(salary)FROMemployees;SELECTMAX(hire_date),MIN(hire_date)FROMemployees;-- 最近/最早入职日期SELECTMAX(last_name)FROMemployees;-- 字母顺序最后的姓名-- 同时使用多个分组函数SELECTCOUNT(*)AStotal_emp,COUNT(commission_pct)ASemp_with_comm,SUM(salary)AStotal_salary,ROUND(AVG(salary),2)ASavg_salary,MAX(salary)ASmax_salary,MIN(salary)ASmin_salary,MAX(salary)-MIN(salary)ASsalary_rangeFROMemployees;2.2 LISTAGG函数11g新增LISTAGG是Oracle 11g引入的强大聚合函数可以将多行数据合并为一行字符串。-- 将各部门的员工姓名合并为逗号分隔的字符串SELECTdepartment_id,COUNT(*)ASemp_count,LISTAGG(last_name,, )WITHINGROUP(ORDERBYlast_name)ASemp_namesFROMemployeesGROUPBYdepartment_idORDERBYdepartment_id;-- 输出示例-- DEPARTMENT_ID EMP_COUNT EMP_NAMES-- 10 1 Whalen-- 20 2 Fay, Hartstein-- 30 6 Baida, Colmenares, Himuro, Khoo, Raphaely, Tobias2.3 STDDEV和VARIANCE统计函数-- STDDEV标准差样本标准差SELECTdepartment_id,ROUND(AVG(salary),2)ASavg_salary,ROUND(STDDEV(salary),2)ASsalary_stddev,ROUND(VARIANCE(salary),2)ASsalary_varianceFROMemployeesGROUPBYdepartment_idHAVINGCOUNT(*)2ORDERBYdepartment_id;三、GROUP BY子句3.1 单列分组-- 按部门统计员工数量和平均薪资SELECTdepartment_id,COUNT(*)ASemp_count,ROUND(AVG(salary),2)ASavg_salaryFROMemployeesGROUPBYdepartment_idORDERBYdepartment_id;3.2 多列分组-- 按部门和职位分组统计SELECTdepartment_id,job_id,COUNT(*)ASemp_count,SUM(salary)AStotal_salary,ROUND(AVG(salary),2)ASavg_salaryFROMemployeesGROUPBYdepartment_id,job_idORDERBYdepartment_id,job_id;-- 注意SELECT中非聚合列必须出现在GROUP BY中-- 以下写法错误job_id未在GROUP BY中-- SELECT department_id, job_id, COUNT(*) FROM employees GROUP BY department_id; -- ERROR!3.3 在表达式上分组-- 按入职年份分组统计SELECTTO_CHAR(hire_date,YYYY)AShire_year,COUNT(*)ASemp_count,ROUND(AVG(salary),2)ASavg_salaryFROMemployeesGROUPBYTO_CHAR(hire_date,YYYY)ORDERBYhire_year;-- 按薪资范围分组需要CASE表达式SELECTCASEWHENsalary5000THEN低薪5000以下WHENsalaryBETWEEN5000AND10000THEN中薪5000-10000ELSE高薪10000以上ENDASsalary_range,COUNT(*)ASemp_count,ROUND(AVG(salary),2)ASavg_in_rangeFROMemployeesGROUPBYCASEWHENsalary5000THEN低薪5000以下WHENsalaryBETWEEN5000AND10000THEN中薪5000-10000ELSE高薪10000以上ENDORDERBYemp_countDESC;3.4 ROLLUP与CUBE小计与总计ROLLUP和CUBE是GROUP BY的扩展用于生成多层次的汇总报表。-- ROLLUP层次化小计-- 生成部门-职位明细 部门小计 总计SELECTNVL(TO_CHAR(department_id),所有部门)ASdept,NVL(job_id,所有职位)ASjob,COUNT(*)ASemp_count,SUM(salary)AStotal_salaryFROMemployeesGROUPBYROLLUP(department_id,job_id)ORDERBYdepartment_id,job_id;-- CUBE生成所有可能组合的汇总-- 生成部门-职位明细 部门小计 职位小计 总计SELECTNVL(TO_CHAR(department_id),所有)ASdept,NVL(job_id,所有)ASjob,COUNT(*)ASemp_count,SUM(salary)AStotal_salaryFROMemployeesGROUPBYCUBE(department_id,job_id)ORDERBYdepartment_id NULLSLAST,job_id NULLSLAST;-- GROUPING函数标识某列是否是汇总行1汇总行0明细行SELECTCASEGROUPING(department_id)WHEN1THEN【总计】ELSETO_CHAR(department_id)ENDASdept_display,CASEGROUPING(job_id)WHEN1THEN【小计】ELSEjob_idENDASjob_display,COUNT(*)ASemp_count,SUM(salary)AStotal_salaryFROMemployeesGROUPBYROLLUP(department_id,job_id);3.5 GROUPING SETS指定分组集合-- 只生成指定的汇总维度比CUBE更精确SELECTdepartment_id,job_id,manager_id,COUNT(*)ASemp_count,SUM(salary)AStotal_salaryFROMemployeesGROUPBYGROUPING SETS((department_id,job_id),-- 按部门职位(department_id),-- 只按部门()-- 总计)ORDERBYdepartment_id,job_id;四、HAVING子句4.1 HAVING vs WHERE这是初学者最容易混淆的地方特性WHEREHAVING过滤时机分组前过滤行分组后过滤组可使用分组函数不可以可以执行顺序在GROUP BY之前在GROUP BY之后-- WHERE过滤单行分组前-- HAVING过滤分组结果SELECTdepartment_id,COUNT(*)ASemp_count,AVG(salary)ASavg_salaryFROMemployeesWHEREsalary3000-- 先过滤排除薪资≤3000的员工GROUPBYdepartment_idHAVINGCOUNT(*)3-- 再过滤只显示员工数≥3的部门ANDAVG(salary)6000-- 且平均薪资6000的部门ORDERBYavg_salaryDESC;-- 错误写法不能在WHERE中使用分组函数-- SELECT department_id, COUNT(*) FROM employees WHERE COUNT(*) 3 GROUP BY department_id; -- ERROR!4.2 HAVING的典型使用场景-- 找出有两个以上员工具有相同薪资的薪资值可能是薪资标准化的结果SELECTsalary,COUNT(*)ASemp_countFROMemployeesGROUPBYsalaryHAVINGCOUNT(*)1ORDERBYsalary;-- 找出平均薪资高于公司整体平均薪资的部门SELECTdepartment_id,ROUND(AVG(salary),2)ASdept_avg_salaryFROMemployeesGROUPBYdepartment_idHAVINGAVG(salary)(SELECTAVG(salary)FROMemployees)ORDERBYdept_avg_salaryDESC;-- 找出至少有一名员工有提成的部门SELECTdepartment_id,COUNT(*)AStotal_emp,COUNT(commission_pct)ASemp_with_commFROMemployeesGROUPBYdepartment_idHAVINGCOUNT(commission_pct)0ORDERBYemp_with_commDESC;五、ORDER BY高级排序5.1 基础排序-- 单列排序SELECTemployee_id,first_name,salaryFROMemployeesORDERBYsalary;-- 默认升序ASCORDERBYsalaryDESC;-- 降序-- 多列排序先按第一列排相同时按第二列排SELECTdepartment_id,salary,last_nameFROMemployeesORDERBYdepartment_idASC,salaryDESC,last_nameASC;-- 使用列号排序不推荐可读性差但在某些场景有用SELECTdepartment_id,salary,last_nameFROMemployeesORDERBY1,2DESC;5.2 NULL值的排序位置-- 默认情况下ASC排序时NULL排在最后DESC排序时NULL排在最前-- 使用NULLS FIRST/NULLS LAST控制NULL的位置SELECTemployee_id,commission_pctFROMemployeesORDERBYcommission_pctASCNULLSFIRST;-- NULL排最前SELECTemployee_id,commission_pctFROMemployeesORDERBYcommission_pctDESCNULLSLAST;-- NULL排最后5.3 自定义排序顺序-- 使用DECODE或CASE实现自定义排序顺序-- 需求按照IT、HR、Finance、Sales、其他的顺序排列部门SELECTd.department_name,COUNT(e.employee_id)ASemp_countFROMdepartments dLEFTJOINemployees eONd.department_ide.department_idGROUPBYd.department_nameORDERBYDECODE(d.department_name,IT,1,Human Resources,2,Finance,3,Sales,4,99)-- 其他部门排最后;5.4 ORDER BY与ROWNUM的配合分页查询-- Oracle 11g中实现分页查询的标准写法-- 查询按薪资降序排列的第11-20名员工SELECT*FROM(SELECTe.*,ROWNUMASrnFROM(SELECTemployee_id,first_name,last_name,salaryFROMemployeesORDERBYsalaryDESC)eWHEREROWNUM20-- 先取前20行)WHERErn11;-- 再取第11行及以后-- 注意不能直接 WHERE ROWNUM BETWEEN 11 AND 20因为ROWNUM是伪列-- 必须使用嵌套查询的方式-- 参数化分页每页显示pageSize行取第pageNum页-- pageNum 2, pageSize 10SELECT*FROM(SELECTe.*,ROWNUMASrnFROM(SELECTemployee_id,first_name,salaryFROMemployeesORDERBYsalaryDESC)eWHEREROWNUM2*10-- pageNum * pageSize)WHERErn(2-1)*10;-- (pageNum - 1) * pageSize六、综合实战案例案例一部门薪资分析报表-- 生成完整的部门薪资分析报表SELECTNVL(TO_CHAR(e.department_id),未分配)AS部门编号,NVL(d.department_name,未分配)AS部门名称,COUNT(e.employee_id)AS员工人数,TO_CHAR(SUM(e.salary),999,999)AS薪资总额,TO_CHAR(ROUND(AVG(e.salary),2),99,999.99)AS平均薪资,TO_CHAR(MAX(e.salary),99,999)AS最高薪资,TO_CHAR(MIN(e.salary),99,999)AS最低薪资,TO_CHAR(MAX(e.salary)-MIN(e.salary),99,999)AS薪资差距,ROUND(STDDEV(e.salary),2)AS薪资标准差,COUNT(e.commission_pct)AS有提成人数,ROUND(COUNT(e.commission_pct)*100.0/COUNT(*),1)||%AS有提成比例FROMemployees eLEFTJOINdepartments dONe.department_idd.department_idGROUPBYe.department_id,d.department_nameHAVINGCOUNT(e.employee_id)0ORDERBYSUM(e.salary)DESC;案例二员工入职趋势分析-- 按年份统计员工入职趋势SELECTTO_CHAR(hire_date,YYYY)AS入职年份,COUNT(*)AS入职人数,ROUND(AVG(salary),2)AS平均起薪,-- 生成简单的柱状图RPAD(█,COUNT(*),█)AS趋势图,-- 计算当年入职人数占总人数的百分比ROUND(COUNT(*)*100.0/(SELECTCOUNT(*)FROMemployees),1)||%AS占比FROMemployeesGROUPBYTO_CHAR(hire_date,YYYY)ORDERBY入职年份;案例三TOP N分析各部门薪资前3名-- 找出每个部门薪资前3名的员工-- 使用RANK()或ROW_NUMBER()分析函数将在进阶篇详细讲解SELECT*FROM(SELECTdepartment_id,employee_id,first_name|| ||last_nameASfull_name,salary,RANK()OVER(PARTITIONBYdepartment_idORDERBYsalaryDESC)ASsalary_rankFROMemployees)WHEREsalary_rank3ORDERBYdepartment_id,salary_rank;七、常见问题与陷阱Q1GROUP BY中能用列别名吗-- 错误GROUP BY不能使用SELECT中定义的别名SELECTTO_CHAR(hire_date,YYYY)AShire_year,COUNT(*)FROMemployeesGROUPBYhire_year;-- ORA-00904: HIRE_YEAR: invalid identifier-- 正确必须重复表达式SELECTTO_CHAR(hire_date,YYYY)AShire_year,COUNT(*)FROMemployeesGROUPBYTO_CHAR(hire_date,YYYY);Q2COUNT(*) vs COUNT(列名) vs COUNT(1)-- COUNT(*)统计所有行数包括NULL值的行-- COUNT(列名)统计该列非NULL值的行数-- COUNT(1)与COUNT(*)等价性能也相同优化器会做等价转换-- COUNT(DISTINCT 列名)统计不重复的非NULL值的个数SELECTCOUNT(*)AStotal_rows,COUNT(manager_id)ASrows_with_manager,COUNT(*)-COUNT(manager_id)ASrows_without_managerFROMemployees;Q3HAVING能不能引用WHERE已过滤的列-- HAVING可以引用任何可以在查询中使用的表达式-- 但注意WHERE先执行所以HAVING看到的数据已经是WHERE过滤后的结果SELECTdepartment_id,AVG(salary)FROMemployeesWHEREjob_id!SA_REP-- 先排除销售代表GROUPBYdepartment_idHAVINGAVG(salary)7000;-- 对排除后的数据再做汇总过滤八、最佳实践先WHERE后HAVING能用WHERE过滤的条件不要放在HAVING里。WHERE在分组前过滤减少参与分组的数据量性能更好。分组键的索引GROUP BY列上的索引可以显著提升分组排序性能。ROLLUP替代多次查询需要小计和合计时使用ROLLUP一次查询比分别写多个SQL高效。避免分组过多GROUP BY字段过多会导致结果集膨胀要根据实际业务需求设计合理的分组粒度。ORDER BY放最后ORDER BY是最后执行的操作排序代价较高确保只在必要时使用。九、总结本文系统讲解了Oracle SQL分组统计的核心知识分组函数COUNT、SUM、AVG、MAX、MIN、LISTAGG等GROUP BY单列分组、多列分组、ROLLUP/CUBE/GROUPING SETS高级分组HAVING分组结果的过滤与WHERE的本质区别ORDER BY多列排序、NULL值处理、自定义排序、分页查询理解执行顺序FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY是正确编写分组查询的基础。下一篇将进入多表查询与连接操作的深度解析。上一篇【第02篇】Oracle SQL查询高级技巧——条件与函数下一篇【第04篇】Oracle多表查询与连接操作——JOIN的全面解析参考资料《Oracle 11g数据库管理员指南》— 刘宪军著Oracle官方文档SQL Language Reference - SELECT StatementOracle官方文档SQL Language Reference - Aggregate Functions

相关文章:

【Oracle数据库指南】第03篇:Oracle SQL分组统计与排序——GROUP BY、HAVING与ORDER BY深度解析

上一篇【第02篇】Oracle SQL查询高级技巧——条件与函数 下一篇【第04篇】Oracle多表查询与连接操作——JOIN的全面解析 摘要 本文详细讲解Oracle SQL中的分组统计功能,包括分组函数(COUNT、SUM、AVG、MAX、MIN等)的用法、GROUP BY子句的多列…...

CANN/asc-devkit半精度转无符号整数函数

__half2uint_rd 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode…...

AI辅助生殖:多模态数据融合与深度学习在胚胎评估中的应用

1. 项目概述:当AI遇见生命的起点在辅助生殖技术(ART)这个关乎无数家庭希望的前沿领域,每一次胚胎移植都像是一场精密的“押注”。医生和胚胎学家们需要在显微镜下,从数个甚至数十个胚胎中,挑选出那个最有潜…...

CANN算子库幂运算API文档

aclnnPowTensorScalar&aclnnInplacePowTensorScalar 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 📄 查看源码 产品支持情况 产品是否支持A…...

CANN/ops-math OneHot算子

OneHot 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√…...

CANN ops-nn MseLoss算子

MseLoss 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√At…...

ReportPortal故障排除:常见部署问题和解决方案大全

ReportPortal故障排除:常见部署问题和解决方案大全 【免费下载链接】reportportal Main Repository. ReportPortal starts here - see readme below. 项目地址: https://gitcode.com/gh_mirrors/re/reportportal ReportPortal是一款功能强大的测试自动化报告…...

如何永久保存微信聊天记录?5步实现数据自主管理

如何永久保存微信聊天记录?5步实现数据自主管理 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

如何用PyWxDump破解微信数据解析的三大技术壁垒:从困境到突破的完整指南

如何用PyWxDump破解微信数据解析的三大技术壁垒:从困境到突破的完整指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 微信数据解析一直是个技术难题,就像试图打开一个不断变换密码的智能保险箱。…...

FPGA加速中性原子量子计算机的原子检测技术

1. 中性原子量子计算机的原子检测挑战量子计算领域近年来最激动人心的进展之一,就是中性原子量子计算机的快速发展。这种量子计算机利用激光镊子(光学镊子)阵列来捕获和排列中性原子(如铷、铯等碱金属原子)&#xff0c…...

Arclight故障排除与性能调优:解决常见问题的终极方案

Arclight故障排除与性能调优:解决常见问题的终极方案 【免费下载链接】Arclight A Bukkit(1.20/1.21) server implementation in modding environment using Mixin. ⚡ 项目地址: https://gitcode.com/gh_mirrors/ar/Arclight Arclight作为基于Mixin技术的Bu…...

Swift集成OllamaKit:本地大模型原生应用开发实战指南

1. 项目概述:当大模型遇上原生应用最近在折腾一个很有意思的东西,想给手头的 macOS 应用加上一点“智能”。不是那种简单的网络请求,而是希望它能像 ChatGPT 那样,在本地就能理解我的指令、生成文本,甚至进行简单的推理…...

法律即代码:开源项目vericlaw如何用规则引擎实现合同自动化

1. 项目概述与核心价值最近在折腾一些自动化流程,特别是涉及到合同、协议这类法律文书的生成与审核时,发现了一个挺有意思的开源项目:Sheygoodbai/vericlaw。乍一看这个名字,结合其仓库描述,就能猜到它大概和法律&…...

安全代码沙盒实践:从Docker到seccomp的多层防御架构

1. 项目概述:安全代码执行的沙盒化实践在开发、测试乃至在线教育、代码评测平台等场景中,我们经常面临一个核心挑战:如何安全地执行一段来源未知、意图不明的代码?直接在生产服务器上运行用户提交的代码,无异于敞开大门…...

mitojs高级配置与Hook机制:如何实现高度定制化监控

mitojs高级配置与Hook机制:如何实现高度定制化监控 【免费下载链接】monitor 👀 一款轻量级的收集页面的用户点击行为、路由跳转、接口报错、代码报错、页面性能并上报服务端的SDK 项目地址: https://gitcode.com/gh_mirrors/mo/monitor 在当今We…...

Dify工作流智能生成器:用自然语言快速构建AI应用

1. 项目概述:一个为Dify AI工作流“编程”的智能生成器如果你正在使用Dify构建AI应用,并且对反复拖拽节点、配置连线、调试参数感到一丝疲惫,那么Tomatio13/DifyWorkFlowGenerator这个项目可能会让你眼前一亮。它本质上是一个“用自然语言描述…...

CANN/GE图引擎Profiling初始化接口

aclgrphProfInit 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlo…...

Arm CoreSight调试架构与SW-DP协议详解

1. Arm CoreSight调试架构概述在嵌入式系统开发中,调试访问端口(Debug Access Port, DAP)是连接芯片内部调试资源与外部调试器的关键桥梁。作为Arm CoreSight调试技术栈的核心组件,DAP采用分层设计理念,将调试功能划分为两个逻辑层次&#xf…...

CANN/asc-devkit Query API文档

Query 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann…...

CANN/ge ACL内存加载模型API

aclmdlLoadFromMemWithQ 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…...

CANN/GE获取模型输出名称

aclmdlGetOutputNameByIndex 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch…...

ARM9EJ-S处理器JTAG调试架构与实战技巧

1. ARM9EJ-S调试架构概述ARM9EJ-S处理器作为经典的嵌入式RISC核心,其调试子系统设计体现了ARM架构对硬件级诊断能力的重视。整个调试体系由三个关键部分组成:JTAG物理接口、TAP控制器状态机以及EmbeddedICE-RT逻辑单元。这种分层设计使得开发者能够通过标…...

基于Gradio与多模型代理的AI模拟面试系统实战部署指南

1. 项目概述与核心价值最近在准备技术面试,刷题刷到头晕,对着白板自言自语总觉得差点意思。市面上那些模拟面试工具,要么是纯文本问答,冷冰冰的;要么流程僵化,和真实面试里那种有来有回的对话感相去甚远。直…...

CANN/ops-nn动态量化RMS归一化融合算子

aclnnAddRmsNormDynamicQuantV2 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√A…...

开源材料计算自动化平台OpenClaw:从高通量筛选到机器学习集成

1. 项目概述:一个材料科学领域的开源协作实验室最近在GitHub上看到一个挺有意思的项目,叫openclaw-materials-lab。光看这个名字,就能嗅到一股浓浓的交叉学科味道——“openclaw”听起来像是个工具或框架名,“materials lab”则直…...

PhySO快速入门指南:5分钟学会使用符号回归发现物理规律

PhySO快速入门指南:5分钟学会使用符号回归发现物理规律 【免费下载链接】PhySO Physical Symbolic Optimization 项目地址: https://gitcode.com/gh_mirrors/ph/PhySO PhySO(Physical Symbolic Optimization)是一款强大的符号回归工具…...

CANN/ops-nn: 原位加法RMS归一化算子

InplaceAddRmsNorm 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系…...

CANN/asc-devkit截断函数API文档

Truncate(ISASI) 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcod…...

CANN/ops-nn组归一化算子

aclnnGroupNorm 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列…...

CANN/asc-devkit Trunc截断函数API

Trunc 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/cann…...