当前位置: 首页 > 面试题库 >

如果列值相同,则仅选择具有最高id值的行

谢华彩
2023-03-14
问题内容

如何从表中选择所有内容,并且如果列的值相同,name则仅选择具有id最大值的行,因此,如果有这样的表:

  id name   age country
 ---+------+---+------- 
   1  bob    24  UK
   2  john   48  USA
   3  janet  72  USSR
   4  bob    96  Ukraine

它只会选择ID最高的“ bob”,因此结果将返回:

  id name   age country
 ---+------+---+------- 
   2  john   48  USA
   3  janet  72  USSR
   4  bob    96  Ukraine

谢谢你。


问题答案:

您可以使用子查询来计算每个名称的最大ID,然后返回与该子查询返回的ID匹配的所有行:

SELECT *
FROM People
WHERE id IN (SELECT MAX(id) FROM People GROUP BY Name)

请看这里的小提琴。



 类似资料:
  • 问题内容: 我有一张桌子,像这样: 我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。 我尝试了这个: 但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。 有人可以帮忙吗? 问题答案: 您需要了解,当您在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一值获得一行。在随后过滤这些组。通常,您可

  • 问题内容: 该主题的解决方案使我不知所措。 我有一个看起来像的表格(除与我的问题无关的其他字段之外): 名称,卡号,会员类型 现在,我想要一个显示卡号和成员类型相同的行的视图。这两个字段都是整数。名称为VARCHAR。名称不是唯一的,并且相同的名称也应显示重复的卡号,会员类型。 即,如果下表是表格: 我想要: 只需按卡号排序即可使其对人类有用。 最有效的方法是什么? 问题答案: 由于您提到的名称可

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 这个问题已经在这里有了答案 : 检索每个组中的最后一个记录-MySQL (27个答案) 去年关闭。 我有此表用于文档(此处为简化版): 如何为每个ID选择一行,而仅选择最大转速? 根据上述数据,结果应包含两行:和。我正在使用 MySQL 。 目前,我在循环中使用检查来检测

  • 问题内容: 我的表是: 我想列出一组具有相同疾病的患者。pid和did分别是患者和疾病表中的主键,并且是has_disease表中的外键。 样本数据: 耐心 疾病 has_disease 以上数据的答案是因为它们具有完全相同的疾病1和3,即疟疾和病毒热。我想知道如何在mysql中实现这一点。 。 问题答案: 该查询返回给我们患者及其疾病。 通过完整的剂量列表比较2组患者,并将pid保留为相同的剂量

  • exTab 如何使用SQL(与mySQL一起)只返回col1中具有多个相同值、col2中具有多个相同值、但COL3中具有唯一值的行? 例如,在上面的表(exTab)中,val1在col1中出现了4次,对于这4次,val4在col2中出现了3次,但是对于这3次,val7在col3中只出现了一次,所以我想返回这一行(第1行)。考虑到这些条件,第1行将是我希望从此表返回的唯一一行。 我试过和group

  • 问题内容: 我有一个看起来像这样的表: 我想运行一个查询,该查询将选择唯一的ID和值作为命名列,因此它看起来像这样: 任何帮助将非常感激!! 问题答案: 您可以使用以下简单解决方案: 为了安全起见,我创建了join ,因为我不知道id是否可以包含 缺少的 字段,在这种情况下,它们将显示在我们的派生列中。 SQL提琴演示