我正在尝试计算表格上的平均值 + 中位数,并且正在对结果进行分组。由于没有用于中位数计算的内置函数,我引用它来计算中位数。 Simple way to calculate median with MySQL
我当前的查询如下:
SELECT DATE(t1.dateCreated) AS date_created,
ROUND(AVG(t1.processTime), 2) AS average_process_time,
ROUND(AVG(t1.time2), 2) AS average_time2,
(SELECT AVG(dd.processTime)
FROM (
SELECT d.processTime, @rownum := @rownum + 1 as `row_number`, @total_rows := @rownum
FROM table1 d,
(SELECT @rownum := 0) r
WHERE d.dateCreated >= '2021-06-30'
AND d.dateCreated <= '2021-07-02'
ORDER BY d.processTime
) as dd
WHERE dd.row_number IN (FLOOR((@total_rows + 1) / 2), FLOOR((@total_rows + 2) / 2))) as median_processTime,
(SELECT AVG(dd.time2)
FROM (
SELECT d.time2, @rownum := @rownum + 1 as `row_number`, @total_rows := @rownum
FROM table1 d,
(SELECT @rownum := 0) r
WHERE d.dateCreated >= '2021-06-30'
AND d.dateCreated <= '2021-07-02'
ORDER BY d.time2
) as dd
WHERE dd.row_number IN (FLOOR((@total_rows + 1) / 2), FLOOR((@total_rows + 2) / 2))) as median_time2
FROM table1 t1
WHERE t1.dateCreated >= '2021-06-30'
AND t1.dateCreated <= '2021-07-02'
GROUP BY DATE(t1.dateCreated)
ORDER BY DATE(t1.dateCreated)
但是我的中位数计算没有正确计算。也可以优化这个查询吗?