| 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: 14 let
|
|||
0