JMP Query Builder - comment appliquer la fonction "HAVING"?Bonjour à tous, j'ai plusieurs requêtes SQL avec des fonctionnalités "HAVING". Je voudrais voir s'il peut être défini dans JMP Query Builder. J'ai cherché sur cette communauté, mais je n'ai pas vu de discussions à ce sujet (peut-être ai-je manqué?). Je comprends qu'il existe une fonctionnalité SQL personnalisée qui peut être utilisée pour réaliser cette fonction. Mais le problème est que toutes les fonctionnalités interactives de JMP Query Builder ne seront plus visibles. Vous vous demandez simplement des commentaires / suggestions sur la configuration de la condition "HAVING"? Le script SQL typique est comme ci-dessous. Seule la condition "HAVING" ne semble pas évidente à appliquer chez le constructeur. Vos idées seront appréciées!
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
<STRONG>HAVING condition</STRONG>
ORDER BY column-names
AutreRe: JMP Query Builder - comment appliquer la fonction "HAVING"?Vous pouvez remplacer la clause HAVING en créant votre condition dans une deuxième requête, en la joignant à votre instruction de sélection d'origine, puis en filtrant le résultat.Voici à quoi cela pourrait ressembler:
SELECT a.column-names
FROM table-name a
LEFT JOIN (SELECT val, summary(condition-column) as condition
FROM table-name
GROUP BY condition-column) b
ON a.condition-column = b.condition-column
WHERE condition > 1;
Vous pouvez tester ceci dans db-violon en utilisant ceci dans le schéma:
id INT, val INT
);
INSERT INTO test (id, val) VALUES (1, 10);
INSERT INTO test (id, val) VALUES (2, 10);
INSERT INTO test (id, val) VALUES (3, 20);
INSERT INTO test (id, val) VALUES (4, 30);
INSERT INTO test (id, val) VALUES (5, 30);
et ceci dans le select:
SELECT a.ID, a.val, b.tot
FROM test a
LEFT JOIN (SELECT val, count(id) as tot
FROM test
GROUP BY val) b
ON a.val = b.val
WHERE tot > 1;
qui devrait ressembler à ceci:

Re: JMP Query Builder - comment appliquer la fonction "HAVING"?Merci @ih . Cela aide beaucoup. Il n'y a donc pas de fonction "cachée" dans JMP Query Builder qui puisse accomplir la condition "HAVING" directement, ce qui équivaut au bouton "Filtrer" ou "Ordre". J'ai couru la table de test que vous avez jointe dans ce fil. Oui, je pourrais obtenir le même résultat de requête que ce que vous avez montré. J'ai résumé 3 options dans JMP pour faire cette fonction "HAVING": 1) En utilisant le chemin comme @ih mentionné, exécutez la requête personnalisée dans JMP Query Builder, notez que de cette façon aucun mot-clé "HAVING" dans le script de requête.2) Exécutez la requête personnalisée, avec le mot clé HAVING dans le script. Ça marche pour moi. La requête personnalisée ressemble à ceci:
SELECT a.ID, a.val, Count (*) AS tot
FROM test a
GROUP BY a.val
HAVING ((Count (*)>1))
3) Utilisez JMP Query Builder, mais avec deux tables: l'une est la table "test", l'autre est la table récapitulative de la table "test" utilisant JMP "Summary" par colonne ("val"). De cette manière, les utilisateurs qui ne sont pas familiarisés avec les scripts SQL peuvent joindre les deux tables ci-dessus dans le générateur et utiliser "Filtre" pour obtenir la condition "HAVING".
Notez que le dernier est le but initial. S'il existe des moyens d'éviter d'utiliser le deuxième tableau récapitulatif et sans entrer dans une requête personnalisée, veuillez intervenir. Sinon, je pense que nous pouvons clore cette discussion.
Re: JMP Query Builder - comment appliquer la fonction "HAVING"?Salut TG,
Il n'y a pas de HAVING caché dans Query Builder, désolé!Ce serait certainement une considération pour une amélioration. Pour le moment, l'éditeur SQL personnalisé serait le seul moyen de l'utiliser, et comme vous le faites remarquer une fois que vous avez emprunté cette voie, vous ne pouvez pas revenir en mode interactif.
Brian Corcoran
Développement JMP
Re: JMP Query Builder - comment appliquer la fonction "HAVING"?Merci Brian pour la mise à jour. Oui, ce serait bien d'avoir cette amélioration dans les futures versions, mais pas indispensable pour mes applications comme maintenant.