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 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 ......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 |
#2 · Zasláno: 23. 4. 2012, 10:20:51
U první varianty nemáte v druhém poddotaze omezení na časové rozmezí.
|
||
Someone Profil |
#3 · Zasláno: 23. 4. 2012, 10:35:04
Kajman:
je to zapotřebí, když vybírám jen jeden průměr pro konkrétní ID předmětu? |
||
Kajman Profil |
#4 · Zasláno: 23. 4. 2012, 13:27:31
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.
|
||
Časová prodleva: 12 let
|
0