首页 > 解决方案 > 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,但我的代码是错误的。

样本输入

标签: sql

解决方案


您可以使用此查询:

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)

推荐阅读