0

How to calculate the median time when grouped by multiple columns?

order_start order_ready COMPANY id
2018-01-01 18:55:00 2018-01-01 19:05:00 x 223
2018-01-01 18:55:00 2018-01-01 19:05:00 x 224
2018-01-01 18:55:00 2018-01-01 19:05:00 y 225
2018-01-01 18:55:00 2018-01-01 19:05:00 y 226

What I can do using

SELECT
    COUNT(id) as count,
    COMPANY as company ,
    YEAR(order_start) as year,
    MONTH(order_start) as month
FROM table
GROUP BY
    YEAR(order_start),
    MONTH(order_start),
    COMPANY; 
count company year month
2 x 2018 1
2 y 2018 1

What I want is also the median order time calculated on the orders within each company, year, and month

count company year month median_order_time
2 x 2018 1 10
2 y 2018 1 10

I can calculate the waiting time for each trip using the below query, but how do I calculate the median to produce the last table? I am using SQL Server 2017

DATEDIFF(MINUTE, order_start, order_ready))
Dale K
  • 25,246
  • 15
  • 42
  • 71

0 Answers0