Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [mysql]aiuto per query con GROUP BY e COUNT

    Sto impazzendo per impostare una query!!

    Io ho una tabella (id, ip, data) per memorizzare gli accessi ad un sito, io vorrei fare una query che mi raggruppi i dati per data in modo da avere ad esempio data, ip e numero di accessi di quell'ip in quella data la parte che non riesco a fare è proprio quella scritta in corsivo.

    Giusto per capirci la query dovrebbe restutuirmi una cosa del genere:

    codice:
      ______________________________________
     |    data    |     ip       |  numero  |
     |------------|--------------|----------|
     | 22-06-2004 | 123.456.78.9 |     3    |
     |------------|--------------|----------|
     | 22-06-2004 | 987.654.32.1 |     1    |
     |------------|--------------|----------|
     | 27-06-2004 | 159.753.68.4 |     2    |
    |____________|______________|__________|
    Ce la fate a darmi una mano? Grazie mille a tutti!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    SELECT data,ip,COUNT(data) AS numero FROM tabella GROUP BY data
    think simple think ringo

  3. #3
    e se la data ce l'ho in datetime come faccio sempre ad avere una cosa simile per giorno???

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    SELECT *,COUNT(data) AS numero FROM tabella
    GROUP BY DAYOFMONTH(data)
    think simple think ringo

  5. #5
    Originariamente inviato da marketto
    SELECT data,ip,COUNT(data) AS numero FROM tabella GROUP BY data
    ti ringrazio. Avevo già provato così, ma non ottengo il risultato che voglio.Ottengo una cosa del genere, si raggruppata per data, ma come ip mi tiene solo il primo che incontra e non me li distingue per ip:

    codice:
      ______________________________________
     |    data    |     ip       |  numero  |
     |------------|--------------|----------|
     | 22-06-2004 | 123.456.78.9 |     3    |
     |------------|--------------|----------|
     | 24-06-2004 | 987.654.32.1 |     15   |
     |------------|--------------|----------|
     | 27-06-2004 | 159.753.68.4 |     2    |
    |____________|______________|__________|
    Ad esempio dove vedi il 15 significa che in quel giorno ci sono stati 15 accessi, ma solo da un ip, il ché è assolutamente falso, perché mi tiene valido solo il primo ip che incontra. Ho provato a mettere GROUP BY(ip), ma non cambia nulla

    Quello che intendevo io era una query in cui se nello stesso giorno ci sono più accessi da ip diversi mi vengano messi in una riga diversa, come si vede nel primo post dove ho accessi diversi da ip diversi ma nella stessa data.
    Spero di aver spiegato meglio, io non so cosa inventarmi.

    Grazie mille per l'aiuto!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    così dovrebbe andare:

    SELECT data,ip,COUNT(data) AS numero FROM tabella
    GROUP BY ip,data
    think simple think ringo

  7. #7
    esatto!così va!grazie mille per l'aiuto!

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.