phpMyAdmin
 sql >> Baza danych >  >> Database Tools >> phpMyAdmin

Zapytanie MySQL, aby uzyskać średnie modalne kolumny?

Aby uzyskać surowe obliczenia

select window_height, count(*) totalusers
from tbl
group by window_height
order by totalusers desc  # or by window_height

Aby uzyskać średnią modalną (pokaże wiele wartości, jeśli istnieją remisy dla największej liczby)

select window_height, totalusers
from (
    select @r := if(totalusers>@r,totalusers,@r) maxcount, window_height, totalusers
    from (select @r:=0) initvars, (
        select window_height, count(*) totalusers
        from tbl
        group by window_height
    ) X ) Y
where totalusers = @r

Wykorzystuje to sztuczkę MySQL polegającą na użyciu zmiennej do przechowywania maksymalnej liczby podczas przechodzenia przez zagregowane podzapytanie. Podsumowanie operacji

  • O(n):przeskanuj tabelę raz i zbuduj zliczenia (T1)
  • O(n):przeskanuj wyprowadzoną tabelę T1 i zachowaj najwyższą liczbę w zmiennej @r (T2)
  • O(n):skanuj pochodną tabelę T2 i filtruj tylko dla wysokości o największej liczbie



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Coś jak phpMyAdmin ale dla SQL Server?

  2. Błąd phpmyadmin 2002 dla zdalnego serwera

  3. Problem z relacjami w designerze MySql

  4. prosta sesja logowania php

  5. Problemy z linkami do bazy danych w interfejsie phpmyadmina