gpt4 book ai didi

SQL:在A列最小的情况下快速获取B列的值

转载 作者:IT王子 更新时间:2023-10-29 06:29:38 24 4
gpt4 key购买 nike

我正在尝试执行看似简单的 SQL 操作,但我只是找不到正确的语法来快速执行此操作。我正在使用 SQLite。

基本问题是我有一个主键是(objUid,时间)的表。它包含 objUid、time 和 frame 列。对于这个问题,frame 是一个不透明的值。

我想为每个 objUid 提取出来: objUid,minTime,minTime 帧的值,maxTime,maxTime 帧的值。

...我想尽快完成。

我现在有这个,它可以工作,但是如果我去掉“NATURAL JOIN”语句(这意味着我没有得到“frame”列),速度大约是原来的两倍。

SELECT * FROM (
SELECT * FROM (
SELECT objUid, min(time) as minTime, max(time) as maxTime FROM motion GROUP BY objUid
) NATURAL JOIN (
SELECT objUid, time as minTime, frame as minFrame FROM motion
)
) NATURAL JOIN (SELECT objUid, time as maxTime, frame as maxFrame FROM motion)

有什么想法吗?

谢谢!

最佳答案

使用:

SELECT x.objuid,
y.time,
y.frame,
z.time,
z.frame
FROM (SELECT m.objuid,
MIN(m.time) AS min_time,
MAX(m.time) AS max_time
FROM MOTION m
GROUP BY m.objuid) x
JOIN MOTION y ON y.objuid = x.objuid
AND y.time = x.min_time
JOIN MOTION z ON z.objuid = x.objuid
AND z.time = x.max_time

关于SQL:在A列最小的情况下快速获取B列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337156/

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