gpt4 book ai didi

mysql - 更高效的查询MYSQL

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

我有这样的数据表

Table 1

Field1 Field2 Field3
00:00:01 Test1 10.0
00:00:01 Test2 7.3
00:00:01 Test3 11.03
00:00:10 Test1 11.0
00:00:10 Test2 17.3
00:00:10 Test3 15.03
01:00:01 Test1 5.0
01:00:01 Test2 4.3
01:00:01 Test3 4.03
01:00:10 Test1 5.0
01:00:10 Test2 4.3
01:00:10 Test3 4.03
02:00:01 Test1 78.0
02:00:01 Test2 43.3
02:00:01 Test3 19.03
02:00:10 Test1 79.0
02:00:10 Test2 46.3
02:00:10 Test3 14.03

我需要每小时的最大值,我正在使用以下查询,但我正在寻找更有效的时间来保存在其他表中

INSERT INTO table2 (Time, TYPE, Number)
SELECT Field1, Field2, max(Field3)
FROM table1
WHERE Field1 like '00:%' ;
INSERT INTO table2 (Time, TYPE, Number)
SELECT Field1, Field2, max(Field3)
FROM table1
WHERE Field1 like '01:%' ;
INSERT INTO table2 (Time, TYPE, Number)
SELECT Field1, Field2, max(Field3)
FROM table1
WHERE Field1 like '02:%' ;

..............
..............
to '23:%'

最佳答案

您可以使用 WHERE NOT EXISTS 子句。

SELECT Field1 as hr, Field2 as name, Field3 as num
FROM table1 orig
WHERE NOT EXISTS (
SELECT 1
FROM table1 lower
WHERE lower.Field3 > orig.Field3
AND lower.Field1 = orig.Field1
)

所以基本上你是在说“只给我没有其他行具有相同小时数和更高数字的行”——假设你有适当的索引,这将是一个非常有效的查询。

我还建议您使用比 field1、table1 等更好的名称。

我只留下了 SELECT 语句 - 将其包装在 INSERT 语句或您需要的任何其他语句中。

关于mysql - 更高效的查询MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923589/

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