J'ai une table avec les valeurs suivantes:
Subject Course Term Campus ACCT 2301 201980 ENGL 1010 202080
3 Réponses :
Ceci devrait le faire: Exécution d'échantillon: p>
D'accord, j'ai donc eu votre réponse que vous voulez, mais cela n'aime pas le groupement si je le fais comme ça. Espérons que cela vous amène dans la bonne direction.
SELECT t.Subject, t.Course, t.Term, t.Campus
FROM test t
INNER JOIN (SELECT Subject, MAX(Term) AS MaxTerm
FROM test
GROUP BY Subject) q
ON t.Subject = q.Subject
AND t.Term = q.MaxTerm
WHERE Campus = 'WOW';
Merci, Kyle! Je vais jouer avec ce que vous avez entré ici. J'ai besoin d'avoir des campus autres que le "WOW" pour le sujet / cours / terme (parce que nous voulons réellement tous les autres, sauf celui-ci), mais, espérons-le, c'est un début.
Heureux que je puisse aider, je viens de commencer à me rendre à SQL à mon stage cet été et moi si cela vous aide du tout, c'est une victoire pour moi :)
Voici votre requête, plaine et belle avec une seule fonction analytique:
with xyz as (
select X.*,
dense_rank() over (partition by X.subject, X.course order by X.term desc) as terms_in_group_ordered_desc
from test X
)
select subject, course, term
from xyz
where terms_in_group_ordered_desc = 1
and campus = 'WOW'
;
Merci, nop77svk. Cela a sélectionné les bonnes valeurs dont j'avais besoin, mais j'ai peut-être besoin de faire un suivi avec vous.
NOP77SVK, puis-je ajouter au problème? Comment choisir (pour le sujet, le cours et la date d'entrée en vigueur) tous les campus, à l'exception du paramètre_campus (qui est «WOW» dans mon exemple)? Mon objectif serait donc d'avoir pour l'ACCT 2301 201980 Campus 63M et pour l'ENGL 1010 202080 Campus WSW (ou tout autre campus attribué à ce sujet / cours / terme)?
@wandasoozq, ce serait une question différente, veuillez donc poster un autre, vous pouvez même mettre un lien vers cette question originale dans le nouveau. (Vous allez même vous procurer des compétences utiles supplémentaires pour poser des questions bien formées Stackoverflow.com.)
Mais dans votre échantillon, l'astr 276T 201910 WOW contient des wow, alors pourquoi cette valeur ne doit pas être dans votre résultat attendu ??
Il ne le veut pas en résultat parce que ce n'est pas le terme maximal
Parce que la durée maximale pour AR 276T est 201980 (et il n'y a pas de campus «WOW» pour ce terme).
Je crée ce tableau dans une base de données maintenant afin que je puisse essayer de le comprendre
J'y ai pensé tellement, je pense que je suis mort du cerveau! Je parie que je manque quelque chose d'évident! Merci!