Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [MySQL] Conteggio delle righe

    Salve,
    ho questo piccolo problema, vorrei conteggiare le righe di una tabella mysql un pò particolare e direttamente da query ovvero la soluzione deve venir fuori tramite il SELECT.

    ho la tabella db_ip (come potete vedere dall'immagine allegata) e devo ricavare solo gli indirizzi ip evidenziati nell'immagine, facendo :
    codice:
    SELECT db_ip.giorno,
    COUNT(DISTINCT db_ip.ip) AS 'VISITE DEL GIORNO'
    FROM db_ip
    GROUP BY db_ip.giorno
    il risultato sarà :
    codice:
    giorno              VISITE DEL GIORNO
    2006-10-15          1
    2006-10-19          4
    2006-10-20          2
    2006-10-22          2
    etc.
    e fin qui ci siamo e mi va benissimo, ora arriva il problema, come faccio a fare la somma delle VISITE DEL GIORNO (1+4+2+2=9) per ottenere il TOTALE in un'unica riga tipo questa sotto ?
    codice:
    giorno                VISITE TOTALI
    <vuoto>               9
    ho provato così
    codice:
    SELECT db_ip.giorno,
    SUM( COUNT(DISTINCT db_ip.ip) ) AS 'VISITE TOTALI'
    FROM db_ip
    GROUP BY db_ip.giorno
    ma ovviamente non funziona
    ACCETTO SUGGERIMENTI
    GRAZIE
    P.S. Naturalmente gli indirizzi ip nella tabella sono inventati (parlo per eventuali hacker)
    Immagini allegate Immagini allegate

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non si capisce come fai ad estrarre gli ip che ti interessano....
    comunque prova ad aggiungere WITH ROLLUP in fondo alla query

  3. #3
    Prova con questa query... dovrebbe funzionare:

    Codice PHP:
    SELECT SUM(db_ip.ip)
    FROM db_ip
    GROUP BY db_ip
    .giorno 
    Ciao

  4. #4
    Forse hai posto male la domanda.
    Infatti dall'esempio fatto hai scritto che le visite totali devono essere 9 ma non riguardano le visite del giorno ma le visite totali presenti nel DB. E' giusto o no?

    In questo caso basta che ti conti le righe della tabella

    SELECT *,
    FROM db_ip

    $num_visite = @mysqli_num_rows(......);

  5. #5
    scusate ho sbagliato!

  6. #6
    Così dovrebbe funzionare:

    SELECT SUM(A.VISITE) AS TOTALE
    FROM
    (
    SELECT db_ip.giorno,
    SUM( COUNT(DISTINCT db_ip.ip) ) AS VISITE
    FROM db_ip
    GROUP BY db_ip.giorno) as A

    Ciao.

  7. #7
    Originariamente inviato da luca200
    Non si capisce come fai ad estrarre gli ip che ti interessano....
    comunque prova ad aggiungere WITH ROLLUP in fondo alla query
    è proprio per questo motivo che ho chiesto aiuto qua non ti pare ?

  8. #8
    Originariamente inviato da batmark
    Prova con questa query... dovrebbe funzionare:

    Codice PHP:
    SELECT SUM(db_ip.ip)
    FROM db_ip
    GROUP BY db_ip
    .giorno 
    Ciao
    Ho provato, ma non funziona ossia restituisce 4 righe con un numero per ogni riga (sinceramente non sono stato li a vedere cosa potesse aver conteggiato) addirittura tutti con la virgola
    codice:
    759.05
    1514.31
    692.5
    325.48

  9. #9
    Originariamente inviato da gianf_tarantino
    Forse hai posto male la domanda.
    Infatti dall'esempio fatto hai scritto che le visite totali devono essere 9 ma non riguardano le visite del giorno ma le visite totali presenti nel DB. E' giusto o no?

    In questo caso basta che ti conti le righe della tabella

    SELECT *,
    FROM db_ip

    $num_visite = @mysqli_num_rows(......);
    Beh, forse hai capito male tu, visto che ho espressamente mensionato di NON voler utilizzare nulla al di fuori del select per conteggiare le righe altrimenti lo avrei fatto in 2 minuti con la funzione (mysqli_num_rows) del php
    P.S. meno male che ti sei autoccorreto

  10. #10
    Originariamente inviato da gianf_tarantino
    Così dovrebbe funzionare:

    SELECT SUM(A.VISITE) AS TOTALE
    FROM
    (
    SELECT db_ip.giorno,
    SUM( COUNT(DISTINCT db_ip.ip) ) AS VISITE
    FROM db_ip
    GROUP BY db_ip.giorno) as A

    Ciao.
    uhhmm, no decisamente non va, mi riporta il seguente errore :
    codice:
    #1111 - Invalid use of group function

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.