Autor | Zpráva | ||
---|---|---|---|
vojak.p Profil |
#1 · Zasláno: 29. 3. 2014, 18:37:39
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 |
#2 · Zasláno: 29. 3. 2014, 20:08:43
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 |
#4 · Zasláno: 29. 3. 2014, 20:45:04
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 |
#5 · Zasláno: 29. 3. 2014, 22:59:12
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 |
||
Časová prodleva: 10 let
|
0