Re: [SQL ] 在Group by中取得首笔资料

楼主: smlboby (波比)   2017-08-08 22:48:46
这样会比较简单吗?
select
type
,substring(mintext,0,charindex('@',mintext)) as date
,substring(mintext,charindex('@',mintext)+1,50) as ext
,sumamt
from (
select
type,min(date+'@'+ext) as mintext,sum(amt) as sumamt
from table
group by type
) a
※ 引述《SangoGO (隐世的外来人Lv.1)》之铭言:
: 数据库名称:MS SQL
: 数据库版本:2012
: 内容/问题描述:
: 各位先进好
: 自己在公司专案的开发上碰到了查询上的难题
: 如下图范例所示
: http://i.imgur.com/mL6ulEi.png
: 左边是原始Insert的资料
: 中间是依照TYPE与DATE排序的结果
: 右边为预期产出
: 用Group by能直接算出各TYPE的AMT和
: 但旁边的DATE与VALUE就缺乏有效的取得方法
: 有试过用子查询去抓
: 但因为实际笔数过大(可能有100,000)而速度缓慢
: 又或者让结果去找原表,每笔0.1秒的话,6000笔就要10分钟了
: 是否有更好解决的方法呢,求各位先进开示了
:

Links booklink

Contact Us: admin [ a t ] ucptt.com