Visualizzazione dei risultati da 1 a 9 su 9

Discussione: ordinare medie

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    224

    ordinare medie

    Il mio problema è il seguente:
    Ho ricavato tramite questa query

    $query = mysql_query("SELECT *, SUM( dato1 ) as primo,
    SUM( dato2 ) as secondo,
    SUM( dato3 ) as terzo
    FROM totale GROUP BY oggetto ORDER BY terzo DESC");

    A questo punto ho bisogno della media che ricavo da questa formula:

    $i = 1;
    while($row = mysql_fetch_array($query))
    {
    $media = number_format($row[terzo]/$row[primo], 2, ',', ' ');

    Tutto OK finora.

    Ora però ho l'esigenza di ordinare i dati secondo il valore della media ottenuta.
    E' possibile farlo?

    Grazie.

  2. #2
    Certo che la puoi ordinare anche per la media ovviamente però ti devi calcolare la media all'interno della select, in pratica come hai fatto co la somma solo con la media, qualcosa del tipo:
    SELECT AVG(dato) AS media
    FROM tabella
    ORDER BY media;

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    224
    ma la media non è data da un valore che richiamo con la query, ma dal calcolo tra due valori che ottengo con la query.

    primo / terzo = media

    il ciclo while mi da una decina di queste medie che io devo ordinare.

    Come posso inserire la media nella SELECT?

  4. #4
    mi dispiace ma credo proprio non si possa fare

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    224
    ho sentito parlare di tabelle virtuali, ne sai qualcosa?

  6. #6
    l'unica cosa che può essere intesa in sql come tabella virtuale sono le viste (CREATE VIEW...), ma non servono certo per pescare dati interni, ti crea una tabella con dati derivati, poi con un'altra query peschi il dato ma dalla vista e la vista dal database non da fonti esterne (questo per quello che so io, ma posso sempre sbagliarmi)..

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    224
    Non c'è dunque un metodo per poter fare ciò che ho chiesto? Mi sembra impossibile.

  8. #8
    un modo se no potrebbe essere ti calcoli la media ti fai una query insert nel database nel campo media che hai creato nella tabella, dopodichè fai una select ma è uno spreso di risorse non indifferente

  9. #9
    SELECT primo/secondo AS media
    FROM tabella
    ORDER BY media

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.