显示附加到其上的最大值和ID号

时间:2017-12-14 21:33:53

标签: mysql

我正在使用mysql中的聚合函数并遇到了一个问题:我想在列中取最大值并将其与最大值附加的ID号一起显示。

所以,我有几个专栏。一个包含一个ID号,一个包含工作小时数,一个包含筹集的资金(它是一个虚构的志愿者组织的测试数据库)。基本上,我想接受那些志愿服用最多时间的人,并显示他们使用身份证号码工作的小时数。

我可以使用以下代码显示最长时间:

SELECT MAX(HoursWorked) AS 'Most Active' FROM HoursWorked

然而,当我尝试添加一个功能来找到该ID号时,我得到一个我不想要的错误或ID号(我知道它是我不想要的那个,因为我事先查看了表格并知道哪个ID号是最大小时数。

如何用它来解决错误?

2 个答案:

答案 0 :(得分:0)

我的想法是分两步完成

  • 找到最大值
  • 找到HoursWorked = max value
  • 的行

这可以使用以下语句使用子查询来完成:

SELECT id, name, HoursWorked FROM HoursWorked where HoursWorked = (select max(HoursWorked) from HoursWorked);`

在子查询中,您正在使用聚合函数max()查找HoursWorked的最大值,然后在主查询中,您尝试查找HoursWorked值等于此先前找到的最大值的所有行。

通过这种方式,您可以确定两名或更多志愿者最活跃的情况(相同的工作小时数)

答案 1 :(得分:-1)

如果您没有按任何字段进行分组,那么您可以按降序排序选择最高b,如下所示:

HoursWorked