Dla przykładu mamy tabelę w której są kolumny: Kategoria, Podkategoria, Ilość, Data.
Chciałbym dla tej tabeli pobrać: minimalną, maksymalną, średnią ilość, oraz medianę grupując po Kategorii i Podkategorii.
Mam przygotowane 2 zapytania, jedno dla mediany, a drugie dla pozostałych wartości.
Proszę o podpowiedź jak to połączyć w jedno zapytanie, żeby jednym zapytaniem pobrać wszystkie te wartości, zgrupowane po tych dwóch kolumnach.
SELECT Kategoria, Podkategoria, MIN(Ilosc) AS MinimalnaIlosc, MAX(Ilosc) AS MaksymalaIlosc, AVG(Ilosc) AS SredniaIlosc
FROM Tabela
WHERE Data > '2021-01-10'
GROUP BY Kategoria, Podkategoria
SELECT AVG(dd.Ilosc) as median_val
FROM (
SELECT d.Ilosc, @rownum:=@rownum+1 as `row_number`, @total_rows:=@rownum
FROM Tabela d, (SELECT @rownum:=0) r
WHERE d.Ilosc is NOT NULL
AND d.Data > '2021-01-10'
ORDER BY d.Ilosc
) as dd
WHERE dd.row_number IN ( FLOOR((@total_rows+1)/2), FLOOR((@total_rows+2)/2) )