sql >> Databáze >  >> Database Tools >> phpMyAdmin

Dotaz MySQL k získání modálních průměrů sloupce?

Chcete-li získat hrubé počty

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

Chcete-li získat modální průměr (pokud existuje shoda pro nejvyšší počet, zobrazí se více hodnot)

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

To využívá trik MySQL s použitím proměnné k uložení maximálního počtu, když prochází agregovaným poddotazem. Shrnutí operací

  • O(n):jednou prohledejte tabulku a vytvořte počty (T1)
  • O(n):prohledejte odvozenou tabulku T1 a ponechte nejvyšší počet v proměnné @r (T2)
  • O(n):prohledejte odvozenou tabulku T2 a filtrujte pouze výšky s nejvyšším počtem



  1. Vytvořte propojený server v management studiu s databází SAGE 50 US pomocí správce zdroje dat ODBC

  2. Jak najdu všechny spouštěče db v MySQL?

  3. Localhost/phpmyadmin/ vrátí kód php

  4. Nelze exportovat tabulku ve formátu SQL v phpMyAdmin