【问题标题】:Select distinct values from two columns in SQLITE从 SQLITE 中的两列中选择不同的值
【发布时间】:2020-01-03 15:46:41
【问题描述】:

我有两列

tab1
col1   col2
a       1
a       2
b       3
b       6
c       4
d       5

我需要两列中的不同值,例如:

result
col1     col2
a         1
b         3
c         4
d         5
select distinct col1, col2 from tab1 #is not giving such results.

在 sqlite 中可以吗?

【问题讨论】:

  • 你如何确定哪个值是正确的?
  • @Fildor 没关系。我只需要独特的配对。
  • 你刚才说的是独特的配对。在您的示例中,a-2、b-6 去了哪里,为什么不显示在手动制作的结果中(它们是唯一的)?
  • " 如果简单的 SELECT 是 SELECT DISTINCT,则在返回之前从结果行集中删除重复行。为了检测重复行,考虑两个 NULL 值相等。通常的规则适用于选择排序顺序来比较文本值。" 这不适用于此处,因为您没有重复的行。 (来源:sqlite.org/lang_select.html#distinct

标签: sqlite group-by distinct min


【解决方案1】:

从您发布的示例数据中,我看到最简单的方法是 group by col1 并获得 col2 的最小值:

select col1, min(col2)
from tab1
group by col1

【讨论】:

    【解决方案2】:

    获得您的预期结果(不是不同的行,而是其他东西)。
    您正式想要的内容尚不清楚,下面将为每列 1 选择第 2 列的最小值。

    select col1, min (col2) from tab1 group by col1
    

    如果你想选择第一个,让你知道,值的顺序在 SQL 中没有定义,除非例如您添加数字 id 并按其排序。

    注意:在我之前回答过的人,所以请将他的回答标记为已接受,以防您认为我们的回答相同。

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 2022-01-09
      • 2021-03-30
      • 2016-02-27
      • 2017-01-26
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多