如您所見,使用此代碼選擇了一周的開始和結束。我是 sql 的新手,我大致了解這里發生了什么,但我無法詳細解釋。例如,
(select lookupweekid-1 from lookupday where dateoftransaction = date) t2 (lookupweekid)
這讓我很困惑。(...) t2 (...), <-我不明白最后一部分的括號在說什么
select start_of_week,end_of_week from
(select dateoftransaction
from lookupday t1,
(select lookupweekid-1 from lookupday
where dateoftransaction = date) t2 (lookupweekid)
where t1.lookupweekid=t2.lookupweekid
and t1.weekdaynumber=1) t3 (start_of_week)
,(select dateoftransaction
from lookupday t1,
(select lookupweekid-1 from lookupday
where dateoftransaction = date) t2 (lookupweekid)
where t1.lookupweekid=t2.lookupweekid
and t1.weekdaynumber=7) t4 (end_of_week)
;
uj5u.com熱心網友回復:
t4 (end_of_week)是一個表別名,它也定義了一個列別名。這避免了必須在派生表中指定列別名。
所以這:
(select dateoftransaction
from lookupday t1 ...
where t1.lookupweekid=t2.lookupweekid
and t1.weekdaynumber=7) t4 (end_of_week)
相當于:
(select dateoftransaction as end_of_week
from lookupday t1 ...
where t1.lookupweekid=t2.lookupweekid
and t1.weekdaynumber=7) t4
這例如在Postgres 手冊中解釋
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/366502.html
下一篇:根據資料框中的另一列計算出現次數
