這種方法僅適用,如果我們有各類型
q1min的許多行是第一季度(全部測試分)的最低
q2min是第二季度(第一四分位數)
q3max是最低最大的第三季度(第三個四分)的
q4max最大4RD季度(全部測試最大)
declare @my_table table (vertical varchar(50),[Defects(F)] int, [Defects(NF)] int);
insert into @my_table values ('Billing',193,678);
insert into @my_table values ('Provi',200,906);
insert into @my_table values ('Billing',232,111);
insert into @my_table values ('Analyt',67,0);
insert into @my_table values ('Provi',121,690);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
insert into @my_table values ('Billing',111,678);
WITH cte as (
select
vertical,
[Defects(F)]+[Defects(NF)] as defects
from @my_table
),
PivotData AS
(
select
vertical,
CASE WHEN quartile in (1,2) THEN MIN(defects) ELSE MAX(defects) END m,
quartile
from (
select
vertical,
defects,
ntile(4) over (PARTITION BY vertical order by defects) as quartile
from cte
) i
group by vertical, quartile
)
select vertical, [1] as q1min, [2] as q2min, [3] as q3max, [4] as q4max
FROM PivotData
PIVOT (SUM(m) FOR quartile in ([1],[2],[3],[4])) as p;
有一些功能可以做你想要的東西NTILE http://msdn.microsoft.com/en-us/library/ms175126(v=sql.90).aspx –
@youbarajsharma:你有一個日期字段表?你可以提供樣本輸入嗎?你有什麼嘗試? –