Code : Tout sélectionner
create table matable(
id integer,
nom varchar,
dateheuredebut date,
dateheurefin date);
Code : Tout sélectionner
SELECT nom,
SUBSTR ((TO_CHAR (MAX(dateheurefin - dateheuredebut), 'HH24:MI:SS')), 12, 8 ) dureemax,
FROM matable
GROUP BY nom
ORDER BY dureemax DESC
function topx_max($nb,$debut,$fin){
$resultat = array();
$connexion = @ocilogon(***,***,***);
if($connexion == false){
$msg = ocierror();
print_r($msg);
$erreur = $msg['code'];
}
else{
$requete =
"SELECT nom,
SUBSTR ((TO_CHAR (MAX(dateheurefin - dateheuredebut), 'HH24:MI:SS')), 12, 8 ) dureemax,
FROM matable
GROUP BY nom
ORDER BY dureemax DESC";
//echo $requete.'<BR><BR>';
$gestionnaire_requete = ociparse($connexion,$requete);
if (!$gestionnaire_requete) {
$e = OCIError($connexion).'<BR>';
print htmlentities($e);
$tablespaces = false;
}
else{
$r = ociexecute($gestionnaire_requete,OCI_DEFAULT);
if (!$r) {
$e = OCIError($gestionnaire_requete).'<BR>';
echo htmlentities($e);
$tablespaces = false;
}
else{
while (OCIFetchInto($gestionnaire_requete, $ligne, OCI_ASSOC) ) {
//print_r($ligne);echo '<BR>';
//$resultat[$ligne['NOM']] = $ligne;
}
}
}
OCILogoff($connexion);
}
return $resutat;
}
Code : Tout sélectionner
SELECT MAX(duree), AVG(duree)
...Code : Tout sélectionner
SELECT nom, MAX(duree) AS max_duree, AVG(duree) AS avg_duree
FROM matable
GROUP BY nomsi désolé, un oubli. La clé est le champ id.Tu n'as pas de clés sur ta table ?
Je n'ai accès qu'en lecture à la base, pas de modif, pas d'ajout rien. Comme je le disais je dois me débrouiller avec ce que j'ai.Crée un index et déjà ton premier classement (valeurs max) sera fait avant même d'écrire la requête.