0
votes

Oracle SQL - Comment ne pas montrer le nom de l'athlète qui n'apparaît qu'une seule fois

a créé une vue appelée gagnants, il contient les colonnes: Nom de l'athlète, Année, Medal_won ses athlètes fondamentales qui ont remporté la médaille olympique et l'année, Il ressemble à ça,

base de données est en direct SQL: HTTPS : //liveql.oracle.com/apex/f? p = 590: 1000: 0 xxx

Comme vous pouvez voir un nom de nom une seule fois et certains Les noms montrent plus d'une fois, je veux vous débarrasser de toutes les lignes de ceux qui montrent une seule fois, aidez-moi s'il vous plaît. merci!


4 commentaires

Veuillez fournir vos données et votre requête en tant que texte tabulaire plutôt que des images que nous ne pouvons pas copier / coller.


S'il vous plaît Modifier Votre question pour inclure un Exemple de reproductible minimal avec DDL ( Créer une table ) pour vos tables (en tant que texte, pas d'images) et DML ( insérer des instructions ) pour votre échantillon Données afin que les personnes qui souhaitent vous aider à avoir un script qu'ils puissent copier / coller et exécuter et ne pas avoir à inverser l'ingénieur votre code d'une image.


corrigé maintenant, vous avez la base de données et mon code


Votre lien ne fonctionne pas; Il va à la page d'accueil LIDEQL et lorsque vous vous connectez, la feuille de calcul est vide.


3 Réponses :


0
votes

Si j'ai compris votre problème, devez regrouper vos données,

  select year,athlete_name,medal, count(*) "number of Medals" 
  from olym.olym_medals
  join olym.olym_athlete_games on olym_athlete_games.id = olym_medals.athlete_game_id
 join olym.olym_nations on olym_nations.id = olym_athlete_games.nation_id
 join olym.olym_games on olym_games.id = Olym_athlete_games.game_id 
 join olym.olym_athletes on olym_athletes.id = olym_athlete_games.athlete_id
 group by year,athlete_name,medal;


2 commentaires

Vous avez compté combien de temps chaque médaille est apparue, je veux compter combien de temps chaque athlète name_appare-tête et se débarrasser de ceux qui montrent une seule fois


Alors supprimer la médaille du groupe par partie



0
votes

Si je vous ai suivi correctement, vous pouvez utiliser les fonctions de fenêtre: xxx

notes:

  • Je ne suis pas sûr pourquoi vous utilisiez distinct en premier lieu, donc je l'ai supprimé (je soupçonne que ce n'est pas nécessaire)

  • J'ai ajouté des alias de table pour raccourcir la requête et préfixer les colonnes de la clause avec la table à laquelle ils appartiennent (vous voudrez peut-être examiner cela) - ce sont des meilleures pratiques lorsque Traiter avec des requêtes multi-table


0 commentaires

0
votes

Utiliser groupe par et comptez (*)> 1 : xxx


0 commentaires