sql - SQL查找最大值和等于该值的行数
问题描述
给定一个表格,我试图找到 Max Months * Hackos 和具有最大 Months * Hackos 值的 ID 数。
我尝试了下面的代码,但似乎我们不能在内部选择中使用 Max 子句。
SELECT MAX(MONTHS * HACKOS) AS MAXIMUM_HACKOS,
(SELECT COUNT(ID) FROM HACKER WHERE MONTHS*HACKOS = MAX(MONTHS*HACKOS)) AS NUMBER_OF_HACKERS
FROM HACKER ;
正确的预期输出是 144 和 2,但我的代码是错误的。
解决方案
您可以使用此查询:
SELECT MAX(MONTHS * HACKOS) FROM HACKER
在WHERE
子句中然后聚合:
SELECT MAX(MONTHS * HACKOS) AS MAXIMUM_HACKOS,
COUNT(*) AS NUMBER_OF_HACKERS
FROM HACKER
WHERE MONTHS * HACKOS = (SELECT MAX(MONTHS * HACKOS) FROM HACKER)
推荐阅读
- amazon-cloudformation - 无法通过 cloudformation yaml 创建 AWS::ECS::Service,模型验证失败
- javascript - 在 Next JS 中使用 Webpack 创建将 URL 路径映射到组件的加载器
- javascript - Onclick 找不到函数 HTML/Javascript
- c++ - 在 C++ 中从 HTML 文件中读取标签
- c++ - 如何注入从文件加载的shellcode?
- python - 按元素将函数列表映射到项目列表
- bash - 子字符串上的 Bash grep 模式匹配
- asp.net - 如何访问由 ASP 身份生成的表 AspNetUserRoles?
- reactjs - React.js 在开发服务器上启动或创建生产构建需要等待很长时间?
- celery - Celery - 使用 Task.retry() 处理 WorkerLostError 异常