Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Aiuto per query
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • C
      camaweb User • ultima modifica di

      Aiuto per query

      Ho un problema per estrapolare idati da una tabella.

      per riassumere i dati della tabella sono in quasto modo:

      UTENTE COLONNA1


      1 S
      1 S
      1 N
      1 N
      1 S
      2 N
      2 S
      2 N
      3 S
      3 S

      dovrei estrapolare tutti i dati di ogni utente , se nella colonna1 è presente anche solo una volta il valore n

      Ho creato una subquery , ma impiega 50 secondi per l'elaborazione...

      ecco la subquery:

      SELECT tabella1.utente AS utente, tabella1. *
      FROM tabella1
      WHERE utente = ANY(
      SELECT tabella1.utente AS utente
      FROM tabella1
      WHERE tabella1.colonna1 = "N"
      GROUP BY tabella1.utente
      )

      vi prego aiutatemi che è importante!

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • C
        camaweb User • ultima modifica di

        ... la formattazione ha tolto gli spazi

        i numeri sono la prima colonna , le lettere sono la seconda.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • shad
          shad Moderatore • ultima modifica di

          SELECT DISTINCT * FROM tabella1 WHERE colonna1 LIKE "n";

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • C
            camaweb User • ultima modifica di

            Grazie SHAD,

            la query è giusta ma il mio problema è che, devo selezionare tutti i record di un utente, che abba almeno un record con 'n' nella colonna1

            La tua query seleziona solo gli 'n'.:(

            Nelle'esempio che ho riportato la query dovrebbe darmi:

            1 S
            1 S
            1 N
            1 N
            1 S
            2 N
            2 S
            2 N

            eliminando solo l'utente 3 che non contiene 'n' nella colonna1

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • shad
              shad Moderatore • ultima modifica di

              Ah scusa, non avevo capito bene. Allora basta che modifichi quella di prima così...almeno credo dato che non posso provarla e sto andando ad occhio:

              SELECT * FROM tabella1 WHERE utente IN (SELECT DISTINCT * FROM tabella1 WHERE colonna1 LIKE "n");

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                camaweb User • ultima modifica di

                mmmm.

                la query dopo 60 secondi non ha fornito nessun risultato:?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • shad
                  shad Moderatore • ultima modifica di

                  Vabbè, studiatela un pò, modificala e facci sapere come andava fatta.
                  Il concetto è che ti serve una prima query che ti fornisca un elenco di utenti che abbiano almeno una N. Poi devi fare una seconda query esterna che da quell'elenco trovi tutti i dati di quegli utenti.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • C
                    camaweb User • ultima modifica di

                    In effetti credo che non ci sia alternativa.

                    L'unica soluzione che mi viene in mente è fare 2 query.

                    Con questa:

                    SELECT tabella1.utente AS utente, tabella1. *
                    FROM tabella1
                    WHERE utente = ANY(
                    SELECT tabella1.utente AS utente
                    FROM tabella1
                    WHERE tabella1.colonna1 = "N"
                    GROUP BY tabella1.utente
                    )

                    ottengo il risultato che voglio , ma il server ci impiega 50 secondi ad eseguirla

                    grazie per l'aiuto comunque

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    Caricamento altri post
                    Rispondi
                    • Topic risposta
                    Effettua l'accesso per rispondere
                    • Da Vecchi a Nuovi
                    • Da Nuovi a Vecchi
                    • Più Voti