Autor Zpráva
Someone
Profil
Dobrý den počítám pořadí záznamu na základě nějakého průměru.
                SELECT COUNT(*)+1
                FROM (
                  SELECT tabulka.datumpridani,tabulka.id,AVG(hodnoceni.hodnoceni)
                    AS prumer
                  FROM tabulka
                  JOIN hodnoceni
                    ON tabulka.id = hodnoceni.id_predmetu
                  WHERE tabulka.datum BETWEEN '".Date("Y-m-d")." 00:00:00' AND '".Date("Y-m-d")." 23:59:59'
                  GROUP BY hodnoceni.id_predmetu
                )
                  AS tabulkaaa
                WHERE tabulkaaa.prumer > (
                  SELECT AVG(hodnoceni)
                    AS prumer
                  FROM hodnoceni
                  WHERE hodnoceni.id_predmetu = ".$id."
                  GROUP BY id_predmetu
Vše funguje jak má až na jednu drobnost..

                  SELECT tabulka.datumpridani,tabulka.id,AVG(hodnoceni.hodnoceni)
                    AS prumer
                  FROM tabulka
                  JOIN hodnoceni
                    ON tabulka.id = hodnoceni.id_predmetu
                  WHERE tabulka.datum BETWEEN '".Date("Y-m-d")." 00:00:00' AND '".Date("Y-m-d")." 23:59:59'
                  GROUP BY hodnoceni.id_predmetu
Vznikna taková tabulka:

......datumpridani.............id........prumer
2012-04-22 00:08:26.....84..... 83.3333
2012-04-22 01:25:17.....85......68.5000
2012-04-22 08:26:54.....86......69.2000
2012-04-22 09:31:36.....87......76.6667
2012-04-22 10:24:13.....88......65.0000
2012-04-22 11:04:33.....90......75.0000

Pro id 84 mi správně vypíše pořadí 1
Pro id 88 mi správně vypíše pořadí 6
Pro id 85 mi správně vypíše pořadí 5
Pro id 86 mi správně vypíše pořadí 4
Pro id 90 mi správně vypíše pořadí 3
Avšak pro id 87 mi vypíše také 3...


Už jsem bez nápadů a nenapadá mě jak je něco takového možné.. předem děkuji za každý postřeh.
Kajman
Profil
U první varianty nemáte v druhém poddotaze omezení na časové rozmezí.
Someone
Profil
Kajman:
je to zapotřebí, když vybírám jen jeden průměr pro konkrétní ID předmětu?
Kajman
Profil
Jistě, do průměrů pak přeci můžete zahrnout jinou množinu hodnot - s tím se může změnit i výsledek.

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