[OT] MySql "order by"

Collapse
X
 
  • Filter
  • Ora
  • Show
Clear All
new posts
  • Sergio
    Administrator
    • May 1999
    • 88027
    • 2,166
    • 2,776
    • United States [US]
    • Florida
    • Send PM

    [OT] MySql "order by"

    Intanto che io cerco sul sito MySql qualche d'uno si ricorda quale è la funzione per potere pescare il record più ripetuto nella tabella (ammesso che esista) ed ordinarci la tabella :

    WHERE clausola ORDER BY "most numerous"



  • Ayurvedi77
    Bodyweb Senior
    • Apr 2002
    • 1632
    • 19
    • 6
    • Pisa
    • Send PM

    #2
    Originariamente Scritto da Sergio
    Intanto che io cerco sul sito MySql qualche d'uno si ricorda quale è la funzione per potere pescare il record più ripetuto nella tabella (ammesso che esista) ed ordinarci la tabella :

    WHERE clausola ORDER BY "most numerous"
    Non ricordo di una funzione che ti restituisce il 'più ripetuto'...
    Fatti un algoritmo in PHP e poi ordini la tabella!
    Fammi sapere se trovi qualcosa di specifico in SQL...
    ___________________


    Codice:
    apt-get remove brain
    apt-get install windows-Vista
    ___________________

    Commenta

    • Sergio
      Administrator
      • May 1999
      • 88027
      • 2,166
      • 2,776
      • United States [US]
      • Florida
      • Send PM

      #3
      Si, sembra che sia riuscito con GROUP BY e COUNT(*) , ora devo pesare per il numero delle volte che il codice è conteggiato in quel record.

      Naturalmente Ayu potrei fare una serie di Query o/e un pò di while/if , ma volevo cercare un risultato ottimizzato



      Commenta

      • Ayurvedi77
        Bodyweb Senior
        • Apr 2002
        • 1632
        • 19
        • 6
        • Pisa
        • Send PM

        #4
        ___________________


        Codice:
        apt-get remove brain
        apt-get install windows-Vista
        ___________________

        Commenta

        • zuperman
          Zuper Hero
          • May 2003
          • 17204
          • 364
          • 274
          • Burundi/usr/bin
          • Send PM

          #5
          Originariamente Scritto da Sergio
          Si, sembra che sia riuscito con GROUP BY e COUNT(*) , ora devo pesare per il numero delle volte che il codice è conteggiato in quel record.

          Naturalmente Ayu potrei fare una serie di Query o/e un pò di while/if , ma volevo cercare un risultato ottimizzato
          SELECT DISTINCT .... etc... ti restituisce il numero.
          Allenamento e dieta fanno di te un atleta

          Commenta

          • Sergio
            Administrator
            • May 1999
            • 88027
            • 2,166
            • 2,776
            • United States [US]
            • Florida
            • Send PM

            #6
            Originariamente Scritto da zuperman
            SELECT DISTINCT .... etc... ti restituisce il numero.

            Mo vieniiii mio MySqllone



            Commenta

            • zuperman
              Zuper Hero
              • May 2003
              • 17204
              • 364
              • 274
              • Burundi/usr/bin
              • Send PM

              #7
              Originariamente Scritto da Sergio
              Mo vieniiii mio MySqllone
              EHEH... vediamo un esempio pratico:

              Tabella utenti

              USER_____PROVENIENZA__SESSO__SPORT
              zuperman_Burundi______M______BB
              steel____Africa_______?______FILM PORNO
              avido____Paperopoli __M______Battere sulla tastiera
              beagle___Faenza_______F______BB


              SELECT COUNT (sesso) FROM utenti
              ti restituisce 4 perchè ci sono 4 records (nella realtà molti di più)

              SELECT DISTINCT COUNT (sesso) FROM utenti
              ti restituisce 3 perchè i campi con sesso uguale vengono conteggiati una sola volta.

              Combina insieme le query, mescola a lungo e otterrai quello che vuoi.
              Usa e abusa!
              Last edited by zuperman; 29-03-2005, 16:55:00.
              Allenamento e dieta fanno di te un atleta

              Commenta

              • Ayurvedi77
                Bodyweb Senior
                • Apr 2002
                • 1632
                • 19
                • 6
                • Pisa
                • Send PM

                #8
                Originariamente Scritto da zuperman
                EHEH... vediamo un esempio pratico:

                Tabella utenti

                USER PROVENIENZA SESSO SPORT
                zuperman Burundi M BB
                steel Africa ? FILM PORNO
                avido Paperopoli M Battere sulla tastiera
                beagle Faenza F BB


                SELECT COUNT (sesso) FROM utenti
                ti restituisce 4 perchè ci sono 4 records (nella realtà molti di più)

                SELECT DISTINCT COUNT (sesso) FROM utenti
                ti restituisce 3 perchè i campi con sesso uguale vengono conteggiati una sola volta.

                Combina insieme le query, mescola a lungo e otterrai quello che vuoi.
                Usa e abusa!
                Azzo non si finisce mai di imparare
                ___________________


                Codice:
                apt-get remove brain
                apt-get install windows-Vista
                ___________________

                Commenta

                • Sergio
                  Administrator
                  • May 1999
                  • 88027
                  • 2,166
                  • 2,776
                  • United States [US]
                  • Florida
                  • Send PM

                  #9
                  Allora ti sparo un contro-esempio pratico (reale) e semplice.

                  Tabella shop , tra i vari campi..... :

                  item_code ... item_qty
                  ...345 .............. 3
                  ...234 .............. 1
                  ...345 .............. 1
                  ...123 .............. 2
                  etc ... etc .... etc

                  Ogni riga è una parte di un ordine, la parte relativa al prodotto con il codice item_code
                  Item_code è il codice del prodotto e item_qty è il numero dei pezzi ordinati.

                  Sparare fuori un bel SELECT con una sola query che mi ordini secondo il numero delle volte che un prodotto è stato ordinato (pesato x la quantità "item_qty" nell'ordine) , è possibile ?



                  Commenta

                  • DENZEL
                    Bodyweb Member
                    • Mar 2005
                    • 69
                    • 0
                    • 0
                    • Send PM

                    #10
                    vediamo se come primo post riesco ad essere utile

                    select a, b
                    from table
                    group by a, b
                    having count(a) > 1 --se vuoi vedere i doppi



                    Per le where sai fare da solo no?
                    DW Italy

                    Commenta

                    • zuperman
                      Zuper Hero
                      • May 2003
                      • 17204
                      • 364
                      • 274
                      • Burundi/usr/bin
                      • Send PM

                      #11
                      Originariamente Scritto da Sergio
                      Allora ti sparo un contro-esempio pratico (reale) e semplice.

                      Tabella shop , tra i vari campi..... :

                      item_code ... item_qty
                      ...345 .............. 3
                      ...234 .............. 1
                      ...345 .............. 1
                      ...123 .............. 2
                      etc ... etc .... etc

                      Ogni riga è una parte di un ordine, la parte relativa al prodotto con il codice item_code
                      Item_code è il codice del prodotto e item_qty è il numero dei pezzi ordinati.

                      Sparare fuori un bel SELECT con una sola query che mi ordini secondo il numero delle volte che un prodotto è stato ordinato (pesato x la quantità "item_qty" nell'ordine) , è possibile ?
                      Per semplicità ti ho indicato:
                      -listino: la tabella
                      -cod: il codice
                      -qty: la quantità dell'ordine

                      SELECT listino.cod, listino.qty, Count(*)
                      FROM listino
                      GROUP BY listino.cod, listino.qty
                      ORDER BY 3 DESC;


                      Te lo ordina dal più grande al più piccolo.
                      VABBUO?
                      Allenamento e dieta fanno di te un atleta

                      Commenta

                      • Sergio
                        Administrator
                        • May 1999
                        • 88027
                        • 2,166
                        • 2,776
                        • United States [US]
                        • Florida
                        • Send PM

                        #12
                        Originariamente Scritto da zuperman
                        Per semplicità ti ho indicato:
                        -listino: la tabella
                        -cod: il codice
                        -qty: la quantità dell'ordine

                        SELECT listino.cod, listino.qty, Count(*)
                        FROM listino
                        GROUP BY listino.cod, listino.qty
                        ORDER BY 3 DESC;

                        Te lo ordina dal più grande al più piccolo.
                        VABBUO?
                        Mo intanto che ti costruisco un monumento provo sta Query...



                        Commenta

                        • Albe
                          Mental Case
                          • Dec 2000
                          • 18165
                          • 466
                          • 178
                          • nella mia mente
                          • Send PM

                          #13
                          mmm zup cosi va meglio....



                          SELECT listino.cod, SUM(listino.qty)
                          FROM listino
                          GROUP BY listino.cod
                          ORDER BY 2 DESC;
                          Powerlifting instructor level III FIPL/AIF
                          Certified Personal Trainer by International Sports Sciences Association
                          Master Slim coach by 4move

                          CONTATTI: tecalbe@hotmail.it / Facebook
                          / Blog personale

                          Commenta

                          • Sergio
                            Administrator
                            • May 1999
                            • 88027
                            • 2,166
                            • 2,776
                            • United States [US]
                            • Florida
                            • Send PM

                            #14
                            Originariamente Scritto da zuperman
                            Per semplicità ti ho indicato:
                            -listino: la tabella
                            -cod: il codice
                            -qty: la quantità dell'ordine

                            SELECT listino.cod, listino.qty, Count(*)
                            FROM listino
                            GROUP BY listino.cod, listino.qty
                            ORDER BY 3 DESC;

                            Te lo ordina dal più grande al più piccolo.
                            VABBUO?
                            Può essere che mi sbaglio, ma sembra non me le ordina pesando quanti ne sono stati ordinati per quante volte è stato ordinato.



                            Commenta

                            • Sergio
                              Administrator
                              • May 1999
                              • 88027
                              • 2,166
                              • 2,776
                              • United States [US]
                              • Florida
                              • Send PM

                              #15
                              Originariamente Scritto da Albe
                              mmm zup cosi va meglio....



                              SELECT listino.cod, SUM(listino.qty)
                              FROM listino
                              GROUP BY listino.cod
                              ORDER BY 2 DESC;
                              Difatti questa mi ha fatto un ordinamento perfetto , ora potrei perfezionarla e pesare il tutto considerando anche il campo item_pre che rappresenta il prezzo dell'ordine, ovvero item_qty moltiplicato per il prezzo.



                              Commenta

                              Working...
                              X