• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

mySQL - Mediana, średnia, maksymalna i minimalna w jednym zapytaniu.

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
418 wizyt
pytanie zadane 12 stycznia 2021 w SQL, bazy danych przez michal Mądrala (5,480 p.)

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) )

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 59 wizyt
0 głosów
1 odpowiedź 100 wizyt
0 głosów
1 odpowiedź 410 wizyt
pytanie zadane 5 lipca 2019 w C i C++ przez niezalogowany

90,816 zapytań

139,494 odpowiedzi

313,557 komentarzy

60,313 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...