gpt4 book ai didi

mysql - 您能否从具有 MIN 或 MAX 值的行中获取不同的列?

转载 作者:行者123 更新时间:2023-12-04 02:32:20 24 4
gpt4 key购买 nike

我正在构建一个包含数百万行的应用程序,因此我尽可能避免使用 JOIN。我有一个这样的表:

ID        category  value_1   value_2
1 1 2.2432 5.4321
2 2 6.5423 5.1203
3 1 8.8324 7.4938
4 2 0.4823 9.8244
5 2 7.2456 3.1278
6 1 1.9348 4.4421

我正在尝试从具有最低 ID 的行中检索 value_1 并从具有最高 ID 的行中检索 value_2 类别,像这样:

category  value_1   value_2
1 2.2432 4.4421
2 6.5423 3.1278

这是否可以有效地避免字符串操作和 JOIN 等构造?

谢谢!

最佳答案

试试这个:

SELECT 
category,
(
SELECT t2.value1
FROM table1 t2
WHERE t2.id = MIN(t1.id)
) as value1,
(
SELECT t3.value2
FROM table1 t3
WHERE t3.id = MAX(t1.id)
) as value2
FROM
table1 t1
GROUP BY
category
;

创建并填充表格:

CREATE TABLE `table1` (
`id` INT NOT NULL,
`category` INT NULL,
`value1` DOUBLE NULL,
`value2` DOUBLE NULL,
PRIMARY KEY (`id`)
);
INSERT INTO table1 VALUES
(1, 1, 2.2432, 5.4321),
(2, 2, 6.5423, 5.1203),
(3, 1, 8.8324, 7.4938),
(4, 2, 0.4823, 9.8244),
(5, 2, 7.2456, 3.1278),
(6, 1, 1.9348, 4.4421);

输出:

1   2.2432  4.4421
2 6.5423 3.1278

关于mysql - 您能否从具有 MIN 或 MAX 值的行中获取不同的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63553926/

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