本帖最後由 Super169 於 2016-3-31 09:47 編輯
你睇黎都唔太明白呢題問題的重心
呢題唔係 簡單的 aggregate function 做到的問題
因為你要睇哂咁多條 一 ...
snoopy11hk 發表於 2016-3-31 08:18 
SQL 應該係基於 requirement 去寫.
如果你用 min(input_date), 可以出現同一日有幾條 row, 就唔係原本既 requirement.
如果本身有 rownum 去 unique 咁排序, 輸入次序就應該睇番 rownum, 用 input_date 已經肯定係錯.
如果無 rownum 既, 原本既 requirement 就唔夠條件去做, 做唔到就係做唔到, 唔可以睇住答案去諗.
至於你話要睇哂個 group 既 row 至先, 呢個係事實. 除非本身有 index 係合用, 否則 min(input_date) 一樣係睇哂個 group 入面咁多條. 我唔 sure analytics function 係咪 sub-query 既原理, 但如果無 index 合用, 都係要做一次 table scan.
簡單去諗下, 我比一堆 record 你, 如果本身無排序, 你唔睇哂全部, 又點知邊條係最細? 無論 base on 邊個 field 都係一樣. 原本既題目無講明有乜野 index, 唔可以假設有條 index 係 account_no 再排 input_date. 相反, 如果佢本身有 recnum 既概念, 背後自動送條 index 落 recnum 都唔奇, 不過, 亦唔需要假設有呢樣野.
始終都係果句, 唔好睇完 data 知道答案再去諗條 SQL 點做個答案出黎, 應該係睇 requirement 去做野. |