从 SQLITE 中的两列中选择不同的值

Posted

技术标签:

【中文标题】从 SQLITE 中的两列中选择不同的值【英文标题】:Select distinct values from two columns in 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) 【参考方案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 并按其排序。

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

【讨论】:

以上是关于从 SQLITE 中的两列中选择不同的值的主要内容,如果未能解决你的问题,请参考以下文章

将数据从一列插入另一个表的两列的过程

从表中的两列中选择相同的数据,并使用一条sql语句显示所有数据

MySQL - 从两列中选择不同的值

如何选择在两列中具有相同值集的行,从而连接第三列中的值?

如何使用点绘制熊猫数据框的两列

尝试合并两个不同数据框的两列时出现问题?