Autor Zpráva
vojak.p
Profil
Zdravím, mám kruhový buffer int hodnot, kde hodnoty nabívají čísla 0-17. Potřebuju třeba z 50ti hodnot udělat průměr. Vzhledem ke kruhu mi jako řešení napadlo zjistit četnost každého čísla a z toho počítat. Jakým příkazem zjistím třeba četnost čísla 10?
Kajman
Profil
SELECT cislo,
       Count(*) cetnost
FROM   tabulka
#WHERE  cislo = 10
GROUP  BY cislo  

Ale můžete spočítat přímo průměr.
SELECT Avg(cislo) prumer
FROM   tabulka  
vojak.p
Profil
Kajman:
Díky, vyzkouším. Průměr spočítat nejde kvůli tomu kruhovému rozdělení.
Chápu to správně, že ta funkce mi vrátí počet řádků odpovídající zadanému číslu?
Myslel jsem, že dostanu rovnou číslo které je tam nejvíce.
Alphard
Profil
Nejčastější číslo získáte modifikací prvního dotazu v [#2], stačí neuvádět where, ale místo něho použít order by cetnost desc, tj. seřazení podle četnosti. Volitelně limit 1.
Jinak mám o kruhovém bufferu asi jinou představu, ale nevím, proč by z něj nešel počítat průměr.
vojak.p
Profil
Díky, již jsem to nějak splácal dohromady. Výsledný zápis mám takto:
SELECT hodnota, COUNT(*) cetnost FROM 
(SELECT hodnota FROM tabulka ORDER BY cas DESC LIMIT 20) q 
GROUP  BY hodnota ORDER BY cetnost DESC LIMIT 1

Ty hodnoty jsou uvedeny v polárních souřadnicích, takže průměr čísel 1,1,16 = nula celá něco

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0