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

    DISTINCT che sfasa su piu' campi

    io ho una tabella contenente le estrazioni, in pratica quella che contiene i numeri e' fatta cosi' :

    id auto_increment primary key
    id_data int(10)
    id_ruota int(1)
    estratto int(1)
    numero int(2)

    id_data sara' l' id della data di estrazione mentre id_ruota quello della ruota in cui e' stato estratto
    l' id_estratto sara' la colonna di estrazione, esempio
    BARI 12, 51, 20, 34, 75

    il 12 sara' il primo estratto , quindi estratto = 1 e il 75 estratto = 5 ....

    ed in fine il numero , hce va da 1 a 90 , ovviamente ...



    questa e' la query:
    SELECT DISTINCT numero FROM numeri_estrazione WHERE ruota = 1 ORDER BY id DESC

    tutto ok, risultato da 90 rows con tutti i numeri da 1 a 90 ...



    ma perche' se oltre ai numeri singoli, volendo sapere anche per quel numero, il DISTINCT mi va in pappa se aggiungo l' estratto ??

    SELECT DISTINCT numero, estratto FROM numeri_estrazione WHERE ruota = 1 ORDER BY id DESC



    450 risultati ... mentre io voglio lo stesso risultato di prima, quella senza ", estratto" con il corrispettivo campo estratto di quel solo numero ... invece i numeri sono replicati, non c'e' piu' il distinct per il numero ..



    in poche parole, e' possibile escludere il resto della ricerca dal distinct ? .... o dire per QUEL DISTINCT ( ovvero il numero ) trovami quei capi corrispondenti ... e non l' insieme dei campi DISTINCT ...


    spero sia una fagianata mia e spero sia fattibile, 2 query per una cosa cosi' mi sembra assurdo ... grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #2
    Se gli chiedi i risultati DISTINCT di 2 campi è chiaro che considera due risultati diversi a seconda del campo estratto

  3. #3

    Re: DISTINCT che sfasa su piu' campi

    Originariamente inviato da andr3a
    450 risultati ... mentre io voglio lo stesso risultato di prima, quella senza ", estratto" con il corrispettivo campo estratto di quel solo numero ... invece i numeri sono replicati, non c'e' piu' il distinct per il numero ..
    sono giusti i 450 risultati visto che 90 sono i numeri 5 sono le estrazioni 90x5=450

    io la struttura del db non l'avrei fatta in questa maniera e sopratutto se fai la query (ammesso che sia possibile) come vuoi tu, cioè limitanto il distinct ad un solo campo ti verrebbe fuori un estrazione sola e cosa te ne fai? :master:
    Kaworu.it
    Bookmarks on line i tuoi preferiti ovunque
    il tempo è il miglior dottore.....solo che è parecchio lento ...troppo lento
    wxKonTEXT Editor di testi(linux, win e mac), new version

  4. #4
    infatti

    ma cosa ti serve esattamente, dove vuoi arrivare

  5. #5

    Re: Re: DISTINCT che sfasa su piu' campi

    Originariamente inviato da kaworuskench
    sono giusti i 450 risultati visto che 90 sono i numeri 5 sono le estrazioni 90x5=450

    io la struttura del db non l'avrei fatta in questa maniera e sopratutto se fai la query (ammesso che sia possibile) come vuoi tu, cioè limitanto il distinct ad un solo campo ti verrebbe fuori un estrazione sola e cosa te ne fai? :master:
    se mi fa il distinct sul solo numero, ammesso che sia possibile, non mi fa una sola estrazione, mi fa per ogni numero l'ultima volta che e' stato estratto ... ( 80 non esce dalla data xxxx ... insomma un tabellone analitico )


    in pratica se non fosse possibile non posso nemmeno fare le 2 query perche' se metto l' ID per sapere quel numero a quale id corrisponde mi si centuplica il risultato ... possibile che non si possa pilotare un distinct ?? VVoVe:


    P.S. tu come l'avresti fatta la tabella kawo ?
    io l'ho fatta cosi' per avere maggiore liberta' di query ( ogni numero e' legato agli altri ma slegato da tutto il resto ), ma a quanto pare mi sono inc*lat* da solo invece di risolvere
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    ho appena scoperto che non posso fare query con subquery a piu' risultati

    SELECT MAX( id ) FROM numeri_estrazione WHERE numero = ( SELECT DISTINCT( numero ) FROM numeri_estrazione )

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Originariamente inviato da andr3a
    ho appena scoperto che non posso fare query con subquery a piu' risultati

    SELECT MAX( id ) FROM numeri_estrazione WHERE numero = ( SELECT DISTINCT( numero ) FROM numeri_estrazione )

    select distinct numero, MAX(estratto) from numeri_estrazione WHERE ruota = 1 group by numero;

    prova questa
    Kaworu.it
    Bookmarks on line i tuoi preferiti ovunque
    il tempo è il miglior dottore.....solo che è parecchio lento ...troppo lento
    wxKonTEXT Editor di testi(linux, win e mac), new version

  8. #8
    Originariamente inviato da kaworuskench
    select distinct numero, MAX(estratto) from numeri_estrazione WHERE ruota = 1 group by numero;

    prova questa
    non voglio il MAX estratto ... il numero 52 puo' essere estratto ieri come primo estratto .. e se c'e' un 52 estratto 3 volte fa come quinto mi prende quello, io voglio esattamente l' ordine DESC dei numeri singoli ( distinct ) su ruota id 1 e per ognuno di questi voglio sapere anche gli altri dati di quell' id contenente quel numero ...

    insomma la query perfetta e' SELECT DISTINCT numero FROM numeri_estrazione WHERE ruota = 1 ORDER BY id DESC

    ovvero 90 numeri in ordine di uscita, dall' ultima estrazione a tutte le altre ... ma col solo numero non ci faccio niente, voglio avere anche altri dati ma il distinct deve rimanere ... insomma DISTINCT su un solo campo che IMPLICA per ogni riga , di mostrarmi per ogni numero le altre informazioni ... sul serio e' cosi' difficile una cosa cosi' banale ??? ... piero, che fai di bello ???
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9

    Re: Re: Re: DISTINCT che sfasa su piu' campi

    Originariamente inviato da andr3a
    ... possibile che non si possa pilotare un distinct ?? VVoVe:
    Il problema e' che distinct prende il primo record che soddisfa la condizione e basta, e si estende a tutti i campi selezionati. In pratica e' come se tu facessi il distinct basato sull'accoppiata "numero - estratto". quindi ogni valore di sinistra associato a quello di destra costituisce un risultato DISTINCT.

    Nel tuo caso (post iniziale) credo tu debba aggiungere la clausola GROUP BY .. credo "ruota" prova a vedere i risultati.

    SELECT DISTINCT numero, estratto
    FROM numeri_estrazione
    GROUP BY ruota
    HAVING ruota = 1 (da usare invece di where se vuoi una sola ruota)
    ORDER BY id DESC

    Salvo cazzate mentali post prandiali....



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10

    Re: Re: Re: Re: DISTINCT che sfasa su piu' campi

    Originariamente inviato da piero.mac
    Il problema e' che distinct prende il primo record che soddisfa la condizione e basta, e si estende a tutti i campi selezionati. In pratica e' come se tu facessi il distinct basato sull'accoppiata "numero - estratto". quindi ogni valore di sinistra associato a quello di destra costituisce un risultato DISTINCT.

    Nel tuo caso (post iniziale) credo tu debba aggiungere la clausola GROUP BY .. credo "ruota" prova a vedere i risultati.

    SELECT DISTINCT numero, estratto
    FROM numeri_estrazione
    GROUP BY ruota
    HAVING ruota = 1 (da usare invece di where se vuoi una sola ruota)
    ORDER BY id DESC

    Salvo cazzate mentali post prandiali....


    non va .. o mi da 1 solo record, oppure mi da i 450 di prima ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.