作者SangoGO (隱世的外來人Lv.1)
看板Database
標題[SQL ] 在Group by中取得首筆資料
時間Mon Jul 24 18:50:31 2017
資料庫名稱:MS SQL
資料庫版本:2012
內容/問題描述:
各位先進好
自己在公司專案的開發上碰到了查詢上的難題
如下圖範例所示
http://i.imgur.com/mL6ulEi.png
左邊是原始Insert的資料
中間是依照TYPE與DATE排序的結果
右邊為預期產出
用Group by能直接算出各TYPE的AMT和
但旁邊的DATE與VALUE就缺乏有效的取得方法
有試過用子查詢去抓
但因為實際筆數過大(可能有100,000)而速度緩慢
又或者讓結果去找原表,每筆0.1秒的話,6000筆就要10分鐘了
是否有更好解決的方法呢,求各位先進開示了
-----
Sent from JPTT on my Sony E6853.
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.90.178
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1500893438.A.412.html
※ 編輯: SangoGO (223.137.90.178), 07/24/2017 18:51:42
推 criky: 子查詢+ row number應該可以做 07/24 20:55
推 lbeeon: 如果資料本身有id或是pk,是有一些hacker的作法 07/24 22:36
→ lbeeon: 我個人不喜歡用row_number,因為要重新排序又不能用索引 07/24 22:37
推 clonk: type建index 07/28 15:04