IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Compter combien de fois un mot apparaît dans un champ


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juillet 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2018
    Messages : 48
    Points : 39
    Points
    39
    Par défaut Compter combien de fois un mot apparaît dans un champ
    Bonjour à tous, j'espère être au bon endroit pour poser ma question.
    Je débute totalement en SQL, je m'en sers dans DataStudio pour créer des champs.

    J'aimerai connaître la formule qui permets de savoir combien de fois un mot apparaît dans mon champs mon_commentaire.
    Exemple j'ai : "Paris, Lille, Paris, Marseille" je veux savoir combien de fois Paris est dans la phrase = 2.
    Pour l'instant j'utilise cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF(CONTAINS_TEXT(mon_commentaire,"Paris")=true,1,0)
    Mais j'ai maintenant besoin de savoir combien de fois apparaît "Paris"

    Merci d'avance pour votre aide, bonne journée à tous.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    8 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2008
    Messages : 8 191
    Points : 17 070
    Points
    17 070
    Par défaut
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select str, wrd
         , (length(str) - length(replace(str, wrd, ''))) / length(wrd) as nb_occ
      from (select 'Paris, Lille, Paris, Marseille' as str
                 , 'Paris'                          as wrd
              from dual);
    Edit : adaptation du code pour Oracle Database.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juillet 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2018
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Bonjour, merci pour ton aide. Mais peux-tu mettre des commentaires je débute vraiment. Et je ne comprends pas tout le code stp.

    Merci d'avance

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    16 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 16 677
    Points : 33 724
    Points
    33 724
    Billets dans le blog
    14
    Par défaut
    Astucieux Waldar !

    Explication :
    On prend la longueur de la chaîne globale (30 caractères dans son exemple) puis on soustrait la longueur de la chaîne à laquelle on a enlevé toutes les occurrences du mot à compter (2 fois Paris = 10 caractères => 30 - 10 = 20).
    La soustraction donne 30 - 20 = 10 et on divise par la longueur du mot à compter (Paris = 5 caractères) : 10 / 5 = 2 => Paris est présent deux fois dans la chaîne.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    décembre 2019
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : décembre 2019
    Messages : 834
    Points : 1 345
    Points
    1 345
    Par défaut
    Salut, tu peux aussi utiliser la fonction REGEXP_COUNT si tu es au moins en 11g:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select regexp_count('Paris, Lille, Paris, Marseille, Le Touquet-Paris-Plage',
    '(^Paris(,|$))|( Paris,)') from dual;
    On recherche exactement la chaine "Paris", donc ici dans "Le Touquet-Paris-Plage" elle ne serait pas comptée.

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    juillet 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : juillet 2018
    Messages : 48
    Points : 39
    Points
    39
    Par défaut
    Génial ! Merci beaucoup à tous ! bon week end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Calculer le nombre de fois où un mot apparaît dans chaque "document" d'un fichier texte
    Par RussellUp dans le forum Général Python
    Réponses: 7
    Dernier message: 22/03/2018, 08h30
  2. [AC-2003] compter combien de fois X il y a dans un nombre
    Par lensois dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/05/2011, 18h29
  3. Réponses: 4
    Dernier message: 14/06/2008, 08h19
  4. [XSL]compter combien de fois la valeur d'1 attribut est prés
    Par klowlead dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/02/2006, 18h48
  5. Réponses: 5
    Dernier message: 26/12/2005, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo