tri de groupes en ne récupérant que le 1er élément [MarketingCloud] - SQL/NoSQL - Programmation
Marsh Posté le 13-10-2022 à 14:38:31
GROUP BY siret
Sur du Mysql 8, il va peut-être râlé parce que c'est pas du SQL standard (normalement, un group by doit contenir tous les champs du SELECT sauf ceux d'agrégation). Mais il suffit de retirer l'option ONLY_FULL_GROUP_BY dans le fichier de conf de mysql pour que ça passe.
Marsh Posté le 13-10-2022 à 14:42:13
rufo a écrit : GROUP BY siret |
Oui c'est ce que j'avais tenté mais il râle. Je vais voir pour désactiver l'option.... mais si ce n'est pas possible de la désactiver ?
Marsh Posté le 13-10-2022 à 15:03:05
Pourquoi ça ne le serait pas ?
Il me que c'est le genre de paramètre qu'on peut faire passer par requête SQL en début de session de connexion.
Marsh Posté le 13-10-2022 à 15:43:22
rufo a écrit : Pourquoi ça ne le serait pas ? |
En effet
Enfin j'ai à présent un autre souci, ça marche bien sous MySQL mais sous le logiciel final (Marketing Cloud de Salesforce), j'ai ça :
Marsh Posté le 13-10-2022 à 14:14:26
Bonjour,
Je dispose d'une table avec les champs suivants :
siret | nom | fonction
------|-----|----------
222222| DDD | assistant
111111| AAA | directeur
111111| BBB | président
111111| CCC | assistant
222222| EEE | directeur
333333| GGG | directeur
333333| FFF | assistant
Je souhaiterai trier par fonction (1. président, 2. directeur, 3. assistant) et n'avoir en sortie que le premier élément pour chaque siret.
Pour le tri, j'ai trouvé sous MySQL :
select * from ma_table ORDER BY siret, CASE
WHEN fonction = 'président' THEN 1
WHEN fonction = 'directeur' THEN 2
WHEN fonction = 'assistant' THEN 3
A l'issue du tri, j'obtiens :
siret | nom | fonction
------|-----|----------
111111| BBB | président
111111| AAA | directeur
111111| CCC | assistant
222222| EEE | directeur
222222| DDD | assistant
333333| GGG | directeur
333333| FFF | assistant
Reste que je voudrais obtenir à la fin uniquement :
siret | nom | fonction
------|-----|----------
111111| BBB | président
222222| EEE | directeur
333333| GGG | directeur
Comment ne conserver que le premier élément de chaque siret trié sur la fonction ?
Merci d'avance pour vos idées, j'ai testé pas mal de choses mais je sèche !
Message édité par benj63 le 13-10-2022 à 15:44:02