gpt4 book ai didi

mysql - 分别在多个列中查找最小值

转载 作者:行者123 更新时间:2023-11-30 21:33:02 25 4
gpt4 key购买 nike

我的直觉告诉我已经有一个答案,但我找不到,至少 .如果我错了,请纠正我,我会删除这篇文章。

我有一个以 ID 作为主键的表,三个数字列(我们称它们为 A、B、C)和四个列(称它们为 W、X、Y、Z)我需要对其进行分组。

对于每个组,将有一个(许多)ID,其中 A 最低,B 最低,C 最低。所以,这不是“从多列中获取最低值”,我需要首先计算出每个组的 A 的最小值,然后通过获取 A 的最小值缩小 ID 中每个 B 的范围,然后从中计算出每个 C B的最小值之后的剩余选择。然后,为每个分组获取与此组合相关的ID(只会有一个)。例如

| ID | A | B | C | W | X | Y | Z | 
----------------------------------
| 1 | 2 | 5 | 5 | D | E | F | G | <-- first group
| 2 | 1 | 5 | 4 | D | E | F | G |
| 3 | 1 | 5 | 3 | D | E | F | G |
| 4 | 1 | 2 | 4 | H | I | J | K | <-- second group
| 5 | 2 | 5 | 4 | H | I | J | K |

预期输出:

| ID | A | B | C | W | X | Y | Z | 
----------------------------------

| 3 | 1 | 5 | 3 | D | E | F | G | <-- first group min
| 4 | 1 | 2 | 4 | H | I | J | K | <-- second group min

我想尝试进行三个单独的查询以获取每个最小值,然后加入每个组列,但我为每个组获得了多个结果。我也尝试过子查询,但我猜它是同一个问题:

select ID, A
from tbl
where A= (select min(A) from tbl as m where m.W= tbl.W
.... and so on

如果有人可以提供链接,我很高兴自己阅读并解决这个问题,因为我的 Google-Fu 让我失望了。

最佳答案

我已经尝试了几种方法,以下是效果很好的方法:

select id,A,B,C,W,X,Y,Z from
(select * from `table` inner join
(SELECT min(A) as U,min(B) as I,min(C) as O,W as `G`,X as `H`,Y as `J`,Z as `K` FROM `table`
group by G,H,J,K) as temp on temp.U=`table`.A and temp.I=`table`.B and temp.O=`table`.C) as temp2

我知道这有点乱,但它得到了预期的结果。

关于mysql - 分别在多个列中查找最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267430/

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