gpt4 book ai didi

MySQL - 选择 4 列中至少有 1 列不同的地方

转载 作者:行者123 更新时间:2023-11-29 03:36:48 24 4
gpt4 key购买 nike

有人能告诉我如何进行 SQL 查询以选择 4 列中至少有 1 列与前面的行不同的所有行。我希望您对 GROUP 所做的一样,然后才影响多个列。当我使用时:

SELECT * FROM TABLE GROUP BY col1, col2, col3, col4 

我没有得到我想要的结果,因为列是相互分组的

col1  col2  col3  col4 
1 2 2 4
1 2 2 3 <-- different -> select
1 2 3 2 <-- different -> select
1 2 3 2 <-- don't select
2 2 3 4 <-- different -> select

我不想要 1 2 3 2 列 2 次,并根据第 5 列决定哪一个最佳选择

-- 编辑--

示例数据 SQLfiddle:http://sqlfiddle.com/#!2/efd92e在此示例中,我希望返回这些行

insert into tablename VALUES ("T", 12, 1000, 0, 500, 20.25); (4)*
insert into tablename VALUES ("H", 12, 150, 2500, 100, 45); (0)*
insert into tablename VALUES ("H", 12, 100, 2500, 100, 45); (2)*

*如果可能的话,我还想知道因为“重复”而未被选中的行数。

我尝试根据其中一个 awnser 编写查询,但还没有成功

-- 澄清--

  • 5 列的组合必须是唯一的。
  • 我需要具有最低 col6 的重复行。
  • 我想知道这一行在数据库中有多少次重复

在此先感谢您的帮助

最佳答案

像这样

SELECT * FROM TABLENAME WHERE ID NOT IN
(SELECT t1.ID FROM tablename t1 JOIN tablename t2 ON t1.ID=t2.ID+1
AND t1.col1=t2.col1 AND t1.col2=t2.col2 AND t1.col3=t2.col3
AND t1.col4=t2.col4 AND t1.col5=t2.col5 AND t1.col6=t2.col6)

SQL Fiddle

假设自动递增 ID。

解释:

将表与自身连接,但有一行“更高”,因此它获得 t1 中的行与 t2 中的“下一个”行相同的 id。然后它从表中选择所有行,不包括那些行之前的操作。

关于MySQL - 选择 4 列中至少有 1 列不同的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com