How to use MAX() on a subquery result?(如何在子查询结果上使用 MAX()?)
问题描述
我是 Oracle 和 SQL 世界的新手.我有一个小问题,我一生都无法弄清楚,我花了几个小时尝试不同的方法,但我无法得到我期望的结果.所以这是我的查询:
I am new to Oracle and the SQL world. I have a slight issue with a query that I cannot figure out for the life of me, I have spent a few hours trying different approaches and I cannot get the result I expect. So heres my query:
SELECT *
from(Select membership.mem_desc,membership.mem_max_rentals,membership_history.mem_type,
count(membership_history.MEM_TYPE) as membership_count
from membership_history
JOIN membership ON membership.mem_type = membership_history.mem_type
group by (membership_history.mem_type,membership.mem_desc,membership.mem_max_rentals)
) g
WHERE g.membership_count = (select MAX(membership_count) from g);
所以内部查询完美运行并返回两个结果.现在我有了这两个值,我试图弄清楚如何返回具有最大成员计数的行,这是我一直卡住的地方.在上面的查询中,我尝试在 where 子句中使用 MAX(),但在该选择中,我不断收到错误找不到表"(意思是g").所以我的问题是如何对子查询的结果使用 MAX() 函数?任何想法或建议将不胜感激!!!!!!
So the inner query works perfectly and returns two results. Now that I have these two values I am trying to figure out how to return the row with the maximum value of membership_count which Is where I keep getting stuck. In the above query I tried using the MAX() in the where clause but inside that select I keep getting the error 'table not found'(meaning 'g'). So my question is how do I use the MAX() function on the results of my subquery? Any thoughts or suggestions would be greatly appreciated!!!!!
推荐答案
你不需要找到最大值的子查询.
反而, ;在 ordered 行之后,您只需要 first 行:
You don't need the subquery that finds the maximum value.
Instead, ; you just need the first row after having ordered the rows:
select * from (
select
membership.mem_desc,
membership.mem_max_rentals,
membership_history.mem_type,
count(membership_history.MEM_TYPE) as membership_count
from membership_history
JOIN membership ON membership.mem_type = membership_history.mem_type
group by (membership_history.mem_type,membership.mem_desc,membership.mem_max_rentals)
ORDER BY 4 DESC -- Added this line
) g
WHERE ROWNUM = 1. -- Added this line
这篇关于如何在子查询结果上使用 MAX()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在子查询结果上使用 MAX()?
基础教程推荐
- Sql Server 字符串到日期的转换 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01