gpt4 book ai didi

mysql - 获取两列的每个唯一组合及其最大值和最小值的整个数据集

转载 作者:行者123 更新时间:2023-11-29 18:49:35 28 4
gpt4 key购买 nike

我正在拼命搜索一个查询,它为我提供了以下查询的所有数据集:

SELECT col1, col2, MAX(col3), MIN(col4) FROM table1 GROUP BY col1, col2

这将返回一个如下所示的表

col 1  | col2   | max(col3) | min(col4)
------ | ------ | --------- | ------
10 | 0.5 | 20 | -5
10 | 0.9 | 30 | -2

我需要的是每个最大值和最小值以及每个实体的数据集(整行)。我可以通过像

这样的查询以编程方式执行此操作
SELECT * FROM table1 WHERE col1 = 10 AND (col2 = 0.5 OR col2 = 0.9) AND ((col3 = 20 OR col4 = -5) OR (col3 = 30 OR col4 = -2 ))

它返回我 4 个数据集,

但每次添加 MAX 或 MIN 或 GROUP BY 后,查询会变得更加难看(这就是用户使用程序所做的事情)。

让我尝试用一​​句话来解释它:我正在寻找一种将数据集显示为 col1 和 col2 值的每个唯一组合的每个最大值和最小值(不是 col1、col2)的方法。

有没有一种方法可以在一个查询中执行此操作?

如果您需要更多详细信息,请不要害怕发表评论。

编辑 1

数据集

id   | col 1  | col2   | col3   | col4
---- | ------ | ------ | ------ | ------
0 | 10 | 0.5 | 20 | 0
1 | 10 | 0.5 | 15 | -1
2 | 10 | 0.5 | 17 | 12
3 | 10 | 0.5 | 11 | 3
4 | 10 | 0.5 | 5 | -5
5 | 10 | 0.9 | 10 | 1
6 | 10 | 0.9 | 22 | -1
7 | 10 | 0.9 | 15 | -2
8 | 10 | 0.9 | 30 | 3

所需输出

id   |  col 1  | col2   | col3   | col4
---- | ------ | ------ | ------ | ------
0 | 10 | 0.5 | 20 | 0
4 | 10 | 0.5 | 5 | -5
7 | 10 | 0.9 | 15 | -2
8 | 10 | 0.9 | 30 | 3

最佳答案

这应该可以做到:

SELECT A.* FROM

table1 A

INNER JOIN

(SELECT
col1,
col2,
MAX(col3) AS MAX_col3,
MIN(col4) AS MIN_col4
FROM table1
GROUP BY
col1,
col2) B

ON A.col1 = B.col1
AND A.col2 = B.col2
AND A.col3 = B.MAX_col3
AND A.col4 = B.MIN_col4

关于mysql - 获取两列的每个唯一组合及其最大值和最小值的整个数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44418822/

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