i have SQL server table as below
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TB1](
[Ddate] [date] NULL,
[Amount] [int] NULL,
[ID] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
and the table is sorted by Ddate,amount
and the data as below
SET IDENTITY_INSERT [dbo].[TB1] ON
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 1, 1)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 2, 2)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 3, 3)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 4, 4)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 5, 5)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 6, 6)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 7, 7)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 8, 8)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 9, 9)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-01' AS Date), 10, 10)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 0, 11)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 0, 12)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 1, 13)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 1, 14)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 15)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 16)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 17)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 18)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 19)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 20)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 21)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 22)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 23)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 24)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 25)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 2, 26)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 4, 27)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 4, 28)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 4, 29)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 4, 30)
GO
INSERT [dbo].[TB1] ([Ddate], [Amount], [ID]) VALUES (CAST(N'2020-01-02' AS Date), 4, 31)
GO
SET IDENTITY_INSERT [dbo].[TB1] OFF
GO
and i need to get result as below
type || Ddate || Avg || Explain the result
Top 20% || 1-1-2020 || 9.5 || 10+9= 19 / 2 =9.5
Down 20% || 1-1-2020 || 5.5 || 3+4+5+6+7+8= 33 / 6 =5.5
middle 60 % || 1-1-2020 || 1.5 || 1+2=3 /2 =1.5
Top 20% || 2-1-2020 || 4 || 4+4+4+4=16 /4 = 4
Down 20% || 2-1-2020 || 2 || 2+2+2+2+2+2+2+2+2+2+2+2=24 / 12 = 2
middle 60 % || 2-1-2020 || 1.5 || 1+1+2+2=6 / 4 =1.5