如何在一列没有重复值的情况下选择两列不同的值

问题描述 投票:0回答:2

我有一个学生余额表,其中学生 ID 不重复,但余额重复。我只想选择每个余额中的一个作为带有学生 ID 的样本。这是我桌子的屏幕截图。enter image description here

我的数据库在 oracle 19c 中。 我想显示不同的余额作为每个示例的示例。 1,10,20,50 以及他们的学生 ID,可以是任何 ID。如下图enter image description here

sql oracle
2个回答
0
投票

因为学号可以是任何,那么使用例如

min
聚合函数。

样本数据:

SQL> with student (stid, balance) as
  2    (select 101, 10 from dual union all
  3     select 102, 20 from dual union all
  4     select 103,  5 from dual union all
  5     select 104, 50 from dual union all
  6     select 105,  5 from dual union all
  7     select 106,  5 from dual union all
  8     select 107, 10 from dual union all
  9     select 108, 10 from dual union all
 10     select 120,  1 from dual union all
 11     select 121, 50 from dual union all
 12     select 121, 10 from dual
 13    )

查询:

 14  select min(stid) stid, balance
 15  from student
 16  group by balance
 17  order by balance;

      STID    BALANCE
---------- ----------
       120          1
       103          5
       101         10
       102         20
       104         50

SQL>

-1
投票

你必须决定你想如何平衡。它应该是最低限度的吗?最大限度?还有别的吗?
如果你想要的只是一个样本,那应该不会有太大的不同。
然后根据学生 ID 进行分组,这应该会给你你正在寻找的结果集。

© www.soinside.com 2019 - 2024. All rights reserved.