Code:
$sql0 = mysql_query ("
CREATE TEMPORARY TABLE tmp_table (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
value VARCHAR( 99 ) NOT NULL );
");
$sql1 = mysql_query ("
CREATE TEMPORARY TABLE tmp_table (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
value VARCHAR(99) NOT NULL );
");
$sql2 = mysql_query ("
INSERT INTO tmp_table ( value )
SELECT value FROM table ORDER BY 1;
");
$sql3 = mysql_query ("
SELECT @count := COUNT( * ) FROM tmp_table;
");
$mdn = mysql_query ("
SELECT DISTINCT AVG( value ) AS medijana FROM tmp_table
WHERE id IN (FLOOR((@count+1)/2), CEIL((@count+1)/2));
");
$sql4 = mysql_query ("
DROP TEMPORARY TABLE tmp_table;
");
$sql0 = mysql_query ("
CREATE TEMPORARY TABLE tmp_table (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
value VARCHAR( 99 ) NOT NULL );
");
$sql1 = mysql_query ("
CREATE TEMPORARY TABLE tmp_table (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
value VARCHAR(99) NOT NULL );
");
$sql2 = mysql_query ("
INSERT INTO tmp_table ( value )
SELECT value FROM table ORDER BY 1;
");
$sql3 = mysql_query ("
SELECT @count := COUNT( * ) FROM tmp_table;
");
$mdn = mysql_query ("
SELECT DISTINCT AVG( value ) AS medijana FROM tmp_table
WHERE id IN (FLOOR((@count+1)/2), CEIL((@count+1)/2));
");
$sql4 = mysql_query ("
DROP TEMPORARY TABLE tmp_table;
");
Kod je funkcionalan i dobijam bas ono sto zelim, ali me interesuje da li je moguce isto ovo napisati nekako kompaktnije. Takodje, ovu vrednost cu morati da racunam cak cetiri puta i ispisujem na istoj stranici u okviru cetiri tabelice: za sve grupe, za prvu, drugu i trecu. Trenutno pravim 4 kompletna seta ovih upita s tim sto u poslednja tri dodajem uslov tipa:
SELECT value FROM table WHERE grupa=1 ORDER BY 1;
itd.
Da li mozete da mi predlozite neko bolje resenje od ovog?
Hvala!