作者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://webptt.com/cn.aspx?n=bbs/Database/M.1500893438.A.412.html
※ 编辑: SangoGO (223.137.90.178), 07/24/2017 18:51:42
1F:推 criky: 子查询+ row number应该可以做 07/24 20:55
2F:推 lbeeon: 如果资料本身有id或是pk,是有一些hacker的作法 07/24 22:36
3F:→ lbeeon: 我个人不喜欢用row_number,因为要重新排序又不能用索引 07/24 22:37
4F:推 clonk: type建index 07/28 15:04