我想基於另一列的最大值和第三列的特定ID返回列的一個值,所有這些在同一個表中。SQL選擇基於一列的最大值和另一個的特定ID
我試着做下面的SQL語句,但不工作:
SELECT "value"
FROM event_log
JOIN (SELECT MAX("time") AS max_time
FROM event_log WHERE "eid" = 6)
我想的唯一價值是基於最大值和其他列的特定ID號的「價值」列同一張桌子。
有什麼建議嗎?
我想基於另一列的最大值和第三列的特定ID返回列的一個值,所有這些在同一個表中。SQL選擇基於一列的最大值和另一個的特定ID
我試着做下面的SQL語句,但不工作:
SELECT "value"
FROM event_log
JOIN (SELECT MAX("time") AS max_time
FROM event_log WHERE "eid" = 6)
我想的唯一價值是基於最大值和其他列的特定ID號的「價值」列同一張桌子。
有什麼建議嗎?
你需要指定ON
子句JOIN
操作:
SELECT "value"
FROM event_log AS t1
JOIN (
SELECT MAX("time") AS max_time
FROM event_log
WHERE "eid" = 6
) AS t2 ON t1."time" = t2.max_time
WHERE t1."eid" = 6
SELECT "value"
FROM event_log AS t1
JOIN (
SELECT MAX("time") AS max_time, eid
FROM event_log
WHERE "eid" = 6
Group By eid
) AS t2 ON t1."time" = t2.max_tim
AND t1.eid = t2.eid
Full Join
來明確指定),則需要指定連接的連接條件,而不連接條件。value
的列。但是在子查詢中沒有名爲value
的列。 event_log
表中的列value
?但我認爲你根本不需要加入。試試這個:
SELECT "value",
(Select MAX("time")
FROM event_log WHERE "eid" = 6) maxTime
FROM event_log l
是的,「值」列在event_log表中。 – Istvan
如果兩行有相同的時間?可能在外部查詢中需要'WHERE「eid」= 6'。 – Hogan
它不起作用。它返回具有不同「eid」的更多行。 – Istvan
這個工作,謝謝你! – Istvan