Visualizzazione risultati 1 fino 4 di 4

Discussione: Ricavare tutte le colonne utilizzando DISTINCT

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question Ricavare tutte le colonne utilizzando DISTINCT

    Il "problema" (che alla fine è una funzione) di DISTINCT è che non posso selezionare tutti i campi.
    Devo selezionare tutte le query che hanno come data, che ne so, l'1 gennaio, ma devo anche contare una sola volta i valori unici della colonna colonna1.

    Quindi:
    Codice:
    SELECT DISTINCT colonna1 FROM tabella WHERE DATE(colonnaData) = '2014-01-01'
    Mi sono scervellato un bel po' di tempo con WHERE NOT EXIST ma non mi è venuto in mente nulla

    Grazie

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Se si tratta di contare puoi usare COUNT(DISTINCT nomecampo).

    Occhio alla terminologia. Per "campi" si intendono le colonne della tabella, mentre una "query" è l'interrogazione al database che restituisce delle "righe" o, se preferisci, dei "record".


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Il "problema" (che alla fine è una funzione) di DISTINCT è che non posso selezionare tutti i campi.
    Devo selezionare tutte le query che hanno come data, che ne so, l'1 gennaio, ma devo anche contare una sola volta i valori unici della colonna colonna1.

    Quindi:
    Codice:
    SELECT DISTINCT colonna1 FROM tabella WHERE DATE(colonnaData) = '2014-01-01'
    Mi sono scervellato un bel po' di tempo con WHERE NOT EXIST ma non mi è venuto in mente nulla

    Grazie
    SELECT COUNT(colonna1), colonnaData
    FROM tabella
    GROUP BY(colonnaData)
    WHERE DATE(colonnaData) = '2014-01-01'

  4. #4
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Occhio alla terminologia. Per "campi" si intendono le colonne della tabella, mentre una "query" è l'interrogazione al database che restituisce delle "righe" o, se preferisci, dei "record".
    Infatti volevo recuperare tutte le colonne (campi) della tabella, e non solo quella che specificato con DISTINCT

    Citazione Originalmente inviato da sitoprovadini Visualizza messaggio
    SELECT COUNT(colonna1), colonnaData
    FROM tabella
    GROUP BY(colonnaData)
    WHERE DATE(colonnaData) = '2014-01-01'
    Grazie mille, invertendo GROUP BY e WHERE funziona perfettamente

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •