首页 / 知识
关于 oracle:SQL:聚合函数和分组依据
2023-04-14 15:33:00

SQL: aggregate function and group by考虑 Oracle
这可行,但我必须复制测试 deptno = 20 和 job = \\'CLERK\\',我想避免这种情况。有没有更优雅的方式来写这个,也许使用 以下内容略微过度设计,但对于"top x"查询来说是一个很好的 SQL 模式。
还要注意,这将适用于 Oracle 和 Postgress(我认为),但不适用于 MS SQL。对于 MS SQL 中的类似内容,请参阅问题 SQL Query to get latest price 如果我确定目标数据库,我会选择 Mark Nold 的解决方案,但如果您想要一些与方言无关的 SQL*,请尝试
*我相信这应该适用于任何地方,但我没有测试它的环境。 在 Oracle 中,我会用一个分析函数来做,所以你只需要查询一次 emp 表:
它更简单、更容易阅读、更高效。 如果您想修改它以列出所有部门的此信息,那么您需要在 OVER 中使用 "PARTITION BY" 子句:
有很多解决方案。您还可以通过简单地添加表别名并加入列名来保留原始查询布局,但查询中仍然只有一次 DEPTNO = 20 和 JOB = \\'CLERK\\'。
还应注意,关键字"ALL"可用于这些类型的查询,这将允许您删除"MAX"函数。
我希望这会有所帮助并且有意义。 在 Oracle 中,您还可以使用 EXISTS 语句,这在某些情况下更快。 例如... 但是 那太好了!我不知道您可以将 (x, y, z) 与 SELECT 语句的结果进行比较。这适用于 Oracle。 作为其他读者的旁注,上述查询在 "(deptno,job,sal)" 之后缺少一个 "="。也许堆栈溢出格式化程序吃了它(?)。 再次感谢马克。 |
最新内容
相关内容
linux用户分组命令?
linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,Linux命令行操作之sedsed命令行格式为:sed [-nefri] ‘command’linux进行分组的命令?
linux进行分组的命令?,管理,情况,信息,系统,命令,通用,图片,密码,环境,单位,命令wc-l/etc/group的功能另外linux下在终端环境下可以使用free命关于sql:如何在PostgreSQL“分组依
关于sql:如何在PostgreSQL“分组依据”查询中串联字符串字段的字符串?,关于sql:如何在PostgreSQL“分组依据”查询中串联字符串字段的关于tsql:按DAY,MONTH,YEAR分组时,sql
关于tsql:按DAY,MONTH,YEAR分组时,sql缺少行,关于tsql:按DAY,MONTH,YEAR分组时,sql缺少行,组合,按月,选择,记录,sql missing rows when group关于sql server:GUID作为主键-脱机O
关于sql server:GUID作为主键-脱机OLTP,关于sql server:GUID作为主键-脱机OLTP,用户,应用程序,系统,下载,GUIDs as Primary Keys - OffC#Linq分组
C#Linq分组,C#Linq分组,网站,教程,多个,分组,C# Linq Grouping我正在使用Linq进行实验,但无法确定分组。 我已经看过一些教程,但是由于某关于sql server:没有主键的表
关于sql server:没有主键的表,关于sql server:没有主键的表,数据,客户端,几个,我有,Tables with no Primary Key我有几个表,其唯一的数