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

选择具有相同值的多行

胡承载
2023-03-14
问题内容

我有一张桌子,像这样:

ID  |  Chromosome | Locus | Symbol | Dominance |
===============================================
1   |      10     |   2   |   A    |   Full    |
2   |      10     |   2   |   a    |   Rec.    |
3   |      10     |   3   |   B    |   Full    |
4   |      10     |   3   |   b    |   Rec.    |

我想选择具有相同基因座和染色体的所有行。例如,第3行和第4行。一次可能有2个以上,并且它们可能不是按顺序排列的。

我尝试了这个:

SELECT *
FROM Genes
GROUP BY Locus
HAVING Locus='3' AND Chromosome='10'

但是,即使重复,它总是返回第3行,从不返回第4行。我想我缺少明显而简单的东西,但我茫然。

有人可以帮忙吗?


问题答案:

您需要了解,当您GROUP BY在查询中包含内容时,您是在告诉SQL合并行。您将为每个唯一Locus值获得一行。在Having随后过滤这些组。通常,您可以在选择列表中指定aggergate函数,例如:

--show how many of each Locus there is
SELECT COUNT(*),Locus FROM Genes GROUP BY Locus

--only show the groups that have more than one row in them
SELECT COUNT(*),Locus FROM Genes GROUP BY Locus HAVING COUNT(*)>1

--to just display all the rows for your condition, don't use GROUP BY or HAVING
SELECT * FROM Genes WHERE Locus = '3' AND Chromosome = '10'


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

  • 问题内容: 我不知道该如何称呼这个问题。如果你有更好的话请指正我。 我有两个表,用户和帖子。 使用者: 帖子: 现在,我要列出“最活跃”的用户-写得最多的用户。具体来说,我想要结果。 我可以得到预期的结果。但是,如果某些用户拥有相同数量的帖子,则排名可能不会是“ 公平的 ”。 例如,我可能会得到如下结果: 在这里,实际上还有几个拥有帖子的用户。 因此,这可能不是确切的结果。如何获得包含帖子的额外用

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

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

  • 问题内容: 如何从表中选择所有内容,并且如果列的值相同,则仅选择具有最大值的行,因此,如果有这样的表: 它只会选择ID最高的“ bob”,因此结果将返回: 谢谢你。 问题答案: 您可以使用子查询来计算每个名称的最大ID,然后返回与该子查询返回的ID匹配的所有行: 请看这里的小提琴。

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