0
votes

Comment obtenir une valeur maximale de la valeur1 de la table où la valeur1 et la valeur2 ignorant la valeur2

J'ai une table avec colonne1 = date, colonne2 = A / B, colonne3 = id. Je souhaite le résultat où la date de comparaison de l'ID devrait être avec B dans la colonne2, ignorer si une table

Table xxx

résultat attendu xxx


6 commentaires

Qu'est-ce que tu as essayé pour ça?


J'ai essayé de sélectionner C3, max (C1), C2 de la table où C2 = B et C3 non dans (sélectionnez C3 de la table dans laquelle C2 = A) Groupe de C3. Mais cela ne vérifie pas les valeurs où la dernière date avec C2 = B


bien éditer la question avec la requête que vous avez essayée


C2 devrait être b dans la dernière date. Ignorer si c2 = A à la dernière date. en requête unique


Que devriez-vous attendre si pour une date la plus récente, A & B est-il présent?


Si pour id = 1. La liste des valeurs est un b b. Ça va ignorer parce que A est dans la dernière date. Si pour ID = 2. La liste des valeurs est B a b. Ça va être valide parce que b est dans la dernière date


3 Réponses :


0
votes

Assumin C1 Colonne est une date valide que vous pouvez essayer d'utiliser une sous-requête pour max (c1) xxx

ou si vous avez également besoin de l'identifiant ne correspondant pas à vous Coul ANNEZ UISNG UNION < Pré> xxx


3 commentaires

Il ne prend que des valeurs où c2 = a. J'ai besoin C2 = B avec la dernière date et ignorer si c2 = A dans la dernière date


Pouvez-vous fournir une requête appropriée? Je ne suis pas capable de comprendre cette requête entière


Devrais-je prendre toute cette requête?



1
votes

Utilisez une sous-requête corrélée

Démo xxx

sortie: xxx


5 commentaires

Pardon . Mais il prend des records où A est à la dernière date. Il devrait ignorer cet identifiant si A est à la dernière date. Ne prenez que des enregistrements où B est à la dernière date.


@SanketPatel, auquel cas il prend ça? montrer votre cas


J'ai eu le résultat où c'était un B B. Il devrait ignorer cet identifiant


De ma compréhension, cela ne devrait pas, et j'ai déjà fourni une démonstration que vous pouvez vérifier là-bas, vous pouvez également remplir votre jeu de données d'origine pour montrer en fait auquel cas il se produit @sanketpatel


Je ne peux pas le montrer. Pardon . Mais je suis également appliquant la date> C1 dans les deux requêtes. Pouvez-vous me dire si je devrais l'appliquer dans les deux requêtes ou juste 1



0
votes

Si vous voulez juste que les valeurs C3 code> avec un indicateur, vous pouvez utiliser l'agrégation:

select c3,
       (case when group_concat(c2 order by c1 desc) like 'B,%'
             then 'Valid'
             else 'Invalid'
        end) as flag
from t
group by c3;


0 commentaires