JMP Query Builder: come applicare la funzionalità "HAVING"?Ciao a tutti, ho diverse query SQL con funzionalità "HAVING". Vorrei vedere se può essere impostato in JMP Query Builder. Ho cercato in questa community, ma non ho visto discussioni al riguardo (forse mi sono persa?). Capisco che esiste una funzionalità SQL personalizzata che può essere utilizzata per ottenere questa funzione. Ma il problema è che in questo modo tutte le interessanti funzionalità interattive di JMP Query Builder non verranno più visualizzate. Mi chiedo solo commenti/suggerimenti sull'impostazione della condizione "HAVING"? Lo script SQL tipico è il seguente. Solo la condizione "HAVING" non sembra ovvia da applicare nel builder. Le tue intuizioni saranno apprezzate!
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
<STRONG>AVERE condizione</STRONG>
ORDER BY column-names
Accesso ai datiRi: JMP Query Builder - come applicare la funzione "HAVING"?È possibile sostituire la clausola HAVING creando la propria condizione in una seconda query, unendola all'istruzione select originale e quindi filtrando il risultato.Ecco come potrebbe apparire:
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;
Puoi testarlo in db-fiddle usando questo nello 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);
e questo nella selezione:
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;
che dovrebbe assomigliare a questo:

Ri: JMP Query Builder - come applicare la funzione "HAVING"?Grazie @ih . Aiuta molto. Quindi non esiste una funzione "nascosta" in JMP Query Builder che possa realizzare direttamente la condizione "HAVING", che è equivalente al pulsante "Filter" o "Order". Ho eseguito la tabella di prova che hai allegato in questo thread. Sì, potrei ottenere lo stesso risultato della query di quello che hai mostrato. Ho riassunto 3 opzioni in JMP per fare questa funzione "HAVING": 1) Usando il modo come @ih menzionato, eseguire la query personalizzata in JMP Query Builder, notare che in questo modo nessuna parola chiave "HAVING" nello script della query.2) Eseguire la query personalizzata, con la parola chiave HAVING nello script. Per me funziona. La query personalizzata ha questo aspetto:
SELECT a.ID, a.val, Count (*) AS tot
FROM test a
GROUP BY a.val
HAVING ((Count (*)>1))
3) Utilizzare JMP Query Builder, ma con due tabelle: una è la tabella "test", l'altra è la tabella riepilogativa della tabella "test" utilizzando JMP "Summary" per colonna ("val"). In questo modo, gli utenti che non hanno familiarità con gli script SQL possono unire le due tabelle precedenti nel builder e utilizzare "Filter" per ottenere la condizione "HAVING".
Nota che l'ultimo è lo scopo iniziale. Se ci sono modi per evitare di utilizzare la seconda tabella di riepilogo e senza entrare nella query personalizzata, si prega di intervenire. Altrimenti penso che possiamo chiudere questa discussione.
Ri: JMP Query Builder - come applicare la funzione "HAVING"?Ciao TG,
Non ci sono HAVING nascosti in Query Builder, mi dispiace!Sarebbe sicuramente una considerazione per un miglioramento. A questo punto, l'editor SQL personalizzato sarebbe l'unico modo per usarlo e, come fai notare una volta che vai in quel modo, non puoi tornare alla modalità interattiva.
Brian Corcoran
Sviluppo JMP