当前位置: 首页 > 知识库问答 >
问题:

如何对第一列进行分组并在每个组中附加第二列的任何行

祁正浩
2023-03-14


我是sql新手,我有一个postgresql数据库,它有:

我只需要从db|name1|name3获取3行

:-------|------------
|group1 | element1 (or element2, element3. it doesn`t matter)
|group2 | element4 (or element5 .. element7. it doesn`t matter)
|group3 | element8 (or element9. it doesn`t matter)

数据库有300000多行。

我尝试使用:

select distinct name1 
from Table

我得到了

| name1 | 
:-------|------------
|group1
|group2
|group3

但是如何在每个组中添加任何名称3在SQL和django orm中最好的方法是什么?

共有2个答案

洪博艺
2023-03-14

SQL中确实不存在“无关紧要”的概念。查询需要指定如何继续选择所需内容,或者不指定任何内容并全部接受。这就是使用最小值或最大值所做的。但问题是,如果不更改日期,你总是会得到相同的结果。如果这是你真正想要的,那就很棒,如果不是,你可以模拟“没关系”;一种方法是使用随机排序。So:参见示例

select distinct on (name1)  
       name1,name3
  from atable
 order by name1, random() ; 
谷梁驰
2023-03-14

使用jarlh提到的技术,您可以使用以下查询:

SELECT name1, MAX(name3)
FROM MyTable
GROUP BY name1

你可以在下面的小提琴上检查。

 类似资料:
  • 我有一个遗传数据集,我想对基因组中物理上接近的遗传变异/行进行分组。我想对每个染色体()基因组中某些斑点范围内的基因进行分组。 我的“spots”数据集包含变量/行需要在一定范围内的位置,如下所示: 我的< code>low和< code>high列是我希望查看下一个数据集中是否有任何行落入其中的范围,同时考虑到染色体(< code>chrom)也必须匹配。具有唯一范围和chrom组合的每一行都是

  • 问题内容: 我有一个生成的DataFrame,如下所示: 结果如下: 如您所见,DataFrame按升序排列,然后按降序排列。 我想选择每个组的第一行,即 从小时== 0的组中选择(0,cat26,30.9) 从小时= 1的组中选择(1,cat67,28.5) 从小时== 2的组中选择(2,cat56,39.6) 等等 因此,所需的输出将是: 能够选择每个组的前N行也可能很方便。 任何帮助都将受到

  • 问题内容: 我有一个像这样的元组列表(总是成对出现): 我想找到每对中第一项的总和,即: 如何在Python中执行此操作?目前,我正在遍历列表: 我觉得必须有一种更Python化的方式。 问题答案: 与Python 2.3兼容的版本是 或在最新版本的Python中,请参见此答案。 也会做。

  • 本文向大家介绍Python用相同的第一个值对列表中的元组进行分组,包括了Python用相同的第一个值对列表中的元组进行分组的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,以相同的第一个元素将所有元组分组。让我们看一个例子来清楚地理解它。 输入项 输出结果 让我们看看解决问题的步骤。 初始化列表。 初始化一个空字典。 遍历元组列表。 检查元组的第一个元素是否在字典中作为键存

  • 问题内容: 在C#中将是这样的: Linq-To-Sql将其转换为以下T-SQL代码: 但是它与MySQL不兼容。 问题答案: 当我写 有用。在其他RDBMS中,IIRC这样的语句是不可能的,因为不属于任何组合键的不属于分组键的列就被引用了。 这种“怪癖”的行为与我想要的行为非常接近。所以我用它来获得想要的结果:

  • 问题内容: 我有这样的结构: 我想使用内置方法(在一行中)对整数()求和。 有任何想法吗? 问题答案: 会工作。