Je voudrais dire que j'apprends encore à utiliser SQL, donc les questions que je pose peuvent être faciles pour certains d'entre vous.
Alors, disons que j'ai une colonne appelée SAMPLE et une colonne appelée BATCH. De plus, BATCH contient des SAMPLE et, pour une raison quelconque, il existe une balise liée à la colonne SAMPLE (SAMPLE_FLG).
BATLCH_FLG est utilisé pour montrer qu'au moins un échantillon contenu dans le lot est marqué comme 1.
Vous pouvez visualiser ce scénario dans cet exemple d'image ou dans le tableau ci-dessous :
| sample | batch | sample_flg | batch_flg | |:-----------:|:-----:|:----------:|:---------:| | A111 - 1000 | A11 | 0 | 0 | | A111 - 200 | A11 | 0 | 0 | | A111 - 500 | A11 | 0 | 0 | | B234 - 700 | B234 | 0 | 0 | | B234 - 50 | B234 | 1 | 1 | | B234 - 75 | B234 | 0 | 0 | | C567 - 100 | C567 | 1 | 1 | | C567 - 700 | C567 | 1 | 0 | | C567 - 500 | C567 | 0 | 0 |
Comment obtenir un 1 pour chaque lot dans la colonne BATCH_FLG via une requête SQL ? Ce que je veux dire, c'est que je ne devrais pas utiliser 1 plusieurs fois même s'il y a plusieurs échantillons par lot qui sont étiquetés 1 (les trois dernières lignes de l'image d'exemple).
La position du 1 dans la colonne
BATCH_FLG n'a pas d'importance.J'espère que vous pourrez m'aider. Merci. 🎜
Vous pouvez utiliser
ROW_NUMBER()
pour produire les résultats souhaités. Par exemple :