作者smlboby (波比)
看板Database
标题Re: [SQL ] 在Group by中取得首笔资料
时间Tue Aug 8 22:48:46 2017
这样会比较简单吗?
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分钟了
: 是否有更好解决的方法呢,求各位先进开示了
: -----
: Sent from JPTT on my Sony E6853.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.234.36.193
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1502203729.A.0A3.html