Chaque fois un certain temps j'ai un scénario comme celui-ci, et ne peut jamais arriver à la requête la plus efficace pour tirer dans les informations:regroupement T-SQL question
Disons que nous avons une table avec trois colonnes (Un int, B int, C int). Ma requête doit répondre à une question comme celle-ci: "Dites-moi quelle est la valeur de la colonne C pour la plus grande valeur de la colonne B où A = 5." Un scénario réel pour quelque chose comme ceci serait «A» est vos utilisateurs, «B» est la date à laquelle quelque chose est arrivé, et «C» est la valeur, où vous voulez l'entrée la plus récente pour un utilisateur spécifique.
Je finis toujours avec une requête comme ceci:
SELECT
C
FROM
MyTable
WHERE
A = 5
AND B = (SELECT MAX(B) FROM MyTable WHERE A = 5)
Qu'est-ce que je manque de le faire en une seule requête (plutôt que de les nicher)? Une sorte de clause 'Ayant'?
Comme le PO n'a besoin que de l'entrée la plus récente, c'est probablement la meilleure façon de le faire. –
Merci - Je commençais juste à penser à un problème très similaire. J'aurais probablement pu le faire moi-même, mais pas aussi vite que de le lire ici ... – RolandTumble