JMP Query Builder - Wie wende ich die Funktion "HAVING" an?Hallo zusammen, ich habe mehrere SQL-Abfragen mit "HAVING" -Funktionen. Ich würde gerne sehen, ob es in JMP Query Builder eingestellt werden kann. Ich habe über diese Community gesucht, aber keine Diskussionen darüber gesehen (vielleicht habe ich sie verpasst?). Ich verstehe, dass es eine benutzerdefinierte SQL-Funktion gibt, mit der diese Funktion ausgeführt werden kann. Das Problem ist jedoch, dass alle netten interaktiven Funktionen von JMP Query Builder nicht mehr angezeigt werden. Fragen Sie sich nur nach Kommentaren / Vorschlägen zum Einrichten der Bedingung "HAVING"? Ein typisches SQL-Skript ist wie folgt. Nur die Bedingung "HAVING" scheint im Builder nicht offensichtlich zu sein. Ihre Erkenntnisse werden geschätzt!
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
<STRONG>HAVING condition</STRONG>
ORDER BY column-names
AndereBetreff: JMP Query Builder - Wie wende ich die Funktion "HAVING" an?Sie können die HAVING-Klausel ersetzen, indem Sie Ihre Bedingung in einer zweiten Abfrage erstellen, diese in Ihre ursprüngliche select-Anweisung einfügen und dann das Ergebnis filtern.So könnte das aussehen:
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;
Sie könnten dies in testen db-fiddle Verwenden Sie dies im Schema:
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);
und dies in der Auswahl:
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;
was ungefähr so aussehen sollte:

Betreff: JMP Query Builder - Wie wende ich die Funktion "HAVING" an?Dankeschön @ich h . Es hilft sehr. Daher gibt es in JMP Query Builder keine "versteckte" Funktion, die die Bedingung "HAVING" direkt erfüllen kann. Dies entspricht der Schaltfläche "Filter" oder "Order". Ich habe die Testtabelle ausgeführt, die Sie in diesem Thread angehängt haben. Ja, ich könnte das gleiche Abfrageergebnis erhalten wie das, was Sie gezeigt haben. Ich habe 3 Optionen in JMP zusammengefasst, um diese "HAVING" -Funktion auszuführen: 1) Verwenden Sie den Weg als @ich h Führen Sie die benutzerdefinierte Abfrage in JMP Query Builder aus. Beachten Sie, dass auf diese Weise kein "HAVING" -Schlüsselwort im Abfrageskript vorhanden ist.2) Führen Sie die benutzerdefinierte Abfrage mit dem Schlüsselwort HAVING im Skript aus. Für mich geht das. Die benutzerdefinierte Abfrage sieht folgendermaßen aus:
SELECT a.ID, a.val, Count (*) AS tot
FROM test a
GROUP BY a.val
HAVING ((Count (*)>1))
3) Verwenden Sie den JMP Query Builder, jedoch mit zwei Tabellen: Eine ist die "Test" -Tabelle, die andere ist die Übersichtstabelle der "Test" -Tabelle mit JMP "Summary" nach Spalte ("val"). Auf diese Weise können Benutzer, die mit SQL-Skripten nicht vertraut sind, die beiden oben genannten Tabellen im Builder verknüpfen und "Filter" verwenden, um die Bedingung "HAVING" zu erreichen.
Beachten Sie, dass der letzte der ursprüngliche Zweck ist. Wenn es Möglichkeiten gibt, die Verwendung der zweiten Übersichtstabelle zu vermeiden und keine benutzerdefinierte Abfrage durchzuführen, melden Sie sich bitte an. Ansonsten denke ich, dass wir diese Diskussion schließen können.
Betreff: JMP Query Builder - Wie wende ich die Funktion "HAVING" an?Hallo TG,
Es gibt kein verstecktes HAVING in Query Builder, sorry!Es wäre sicherlich eine Überlegung für eine Verbesserung. Derzeit ist der benutzerdefinierte SQL-Editor die einzige Möglichkeit, ihn zu verwenden. Wie Sie bereits betont haben, können Sie nicht mehr in den interaktiven Modus zurückkehren.
Brian Corcoran
JMP-Entwicklung
Betreff: JMP Query Builder - Wie wende ich die Funktion "HAVING" an?Danke Brian für das Update. Ja, es wäre schön, diese Verbesserung in zukünftigen Versionen zu haben, obwohl dies für meine Anwendungen nicht unbedingt erforderlich ist.