add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
select @@version;
(No column name)
Microsoft SQL Server 2019 (RTM-CU16) (KB5011644) - 15.0.4223.1 (X64)
Apr 11 2022 16:24:07
Copyright (C) 2019 Microsoft Corporation
Express Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
CREATE TABLE test (
dt datetime
);
INSERT INTO test
VALUES
('2022-10-01 11:00:00'),
('2022-10-02 11:00:00'),
('2022-10-03 11:00:00'),
('2022-10-04 11:00:00'),
('2022-10-05 11:00:00'),
('2022-10-06 11:00:00'),
('2022-10-07 11:00:00'),
('2022-10-08 11:00:00'),
('2022-10-09 11:00:00'),
('2022-10-11 11:00:00'),
('2022-10-11 11:00:01'),
('2022-10-12 11:00:00'),
('2022-10-13 11:01:00')
;
13 rows affected
SELECT
dt,
DATEADD(MILLISECOND, pctcont_90_dt % 1000, DATEADD(SECOND, pctcont_90_dt / 1000, '19700101')) AS pctcont_90_dt,
pctdisc_90_dt
FROM (
SELECT
dt,
CAST(
percentile_cont(.90)
WITHIN GROUP (ORDER BY (datediff_big(MS, '1970-01-01', dt)))
OVER()
AS BIGINT
)
AS pctcont_90_dt,
percentile_disc(.90)
WITHIN GROUP (ORDER BY dt) over()
AS pctdisc_90_dt
FROM test
) t
;
dt pctcont_90_dt pctdisc_90_dt
2022-10-01 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-02 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-03 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-04 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-05 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-06 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-07 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-08 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-09 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-11 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-11 11:00:01.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-12 11:00:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000
2022-10-13 11:01:00.000 2022-10-12 06:12:00.200 2022-10-12 11:00:00.000