在 df1 上運行此查詢后,
"SELECT 'max' type, user, MAX(daytime) time FROM df1 UNION ALL SELECT 'min' type, user, MIN(daytime) time FROM df1")
我得到這樣的東西:
type user time
max a 679..
min b 12..
我有另一個這樣的資料集:
id email
a a@hotmail.com
b b@hotmail.com
我想加入他們,這樣我的最終結果是這樣的:
type user time email
max a 679.. a@hotmail.com
min b 12.. b@hotmail.com
理想情況下在同一個查詢中。我試過這個:
"SELECT 'max' type, user, MAX(daytime) time FROM df1 UNION ALL SELECT 'min' type, user, MIN(daytime) time FROM df1 LEFT JOIN df2 ON df2.id == df1.user")
到這里,它不會拋出錯誤,但只要我從 df2 中選擇 cols,
"SELECT email, 'max' type, user, MAX(daytime) time FROM df1 UNION ALL SELECT 'min' type, user, MIN(daytime) time FROM df1 LEFT JOIN df2 ON df2.id == df1.user")
我收到以下錯誤:
PandaSQLException: (sqlite3.OperationalError) no such column: email
uj5u.com熱心網友回復:
您必須將聯合的結果作為子查詢加入df2:
SELECT t.*, df2.email
FROM (
SELECT 'max' type, user, MAX(daytime) time FROM df1
UNION ALL
SELECT 'min' type, user, MIN(daytime) time FROM df1
) t LEFT JOIN df2 ON df2.id = t.user;
uj5u.com熱心網友回復:
您不能只連接兩個表并將下擺組合到另一個選擇中
SELECT type, user, time, email
FROM
(SELECT 'max' type, user, MAX(daytime) time FROM df1 UNION ALL SELECT 'min' type, user, MIN(daytime) time FROM df1) df3
LEFT JOIN df2 ON df2.id == df3.user
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457820.html
上一篇:MockK的“每個”“回傳null”不是回傳“null”,而是一個具有null和false值的NetworkInfo物件
