JMP 쿼리 빌더 - "HAVING" 기능을 적용하는 방법은 무엇입니까?안녕하세요. "HAVING" 기능이 포함된 여러 SQL 쿼리가 있습니다. JMP Query Builder에서 설정이 가능한지 확인하고 싶습니다. 이 커뮤니티를 검색했지만 이에 대한 토론을 보지 못했습니다(제가 놓친 것일 수도 있습니다). 이 기능을 수행하는 데 사용할 수 있는 사용자 지정 SQL 기능이 하나 있다는 것을 알고 있습니다. 하지만 문제는 이렇게 하면 JMP 쿼리 작성기의 모든 멋진 대화형 기능이 더 이상 표시되지 않는다는 것입니다. "HAVING" 조건 설정에 대한 의견/제안이 궁금하십니까? 일반적인 SQL 스크립트는 아래와 같습니다. "HAVING" 조건만 빌더에 적용하는 것이 명확하지 않은 것 같습니다. 귀하의 통찰력에 감사드립니다!
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
<STRONG>HAVING 조건</STRONG>
ORDER BY column-names
데이터 접근Re: JMP Query Builder -- "HAVING" 기능을 적용하는 방법은 무엇입니까?업데이트해 주셔서 감사합니다. 예, 현재 내 응용 프로그램에 필수는 아니지만 향후 버전에서 이 개선 사항을 사용하는 것이 좋을 것입니다.Re: JMP Query Builder -- "HAVING" 기능을 적용하는 방법은 무엇입니까?안녕 TG,
Query Builder에는 숨겨진 HAVING이 없습니다. 죄송합니다!그것은 확실히 향상을 위한 고려 사항이 될 것입니다. 이때 Custom SQL 편집기를 사용하는 것이 유일한 방법이며 일단 그렇게 하면 대화형 모드로 돌아갈 수 없습니다.
브라이언 코코란
JMP 개발
Re: JMP Query Builder -- "HAVING" 기능을 적용하는 방법은 무엇입니까?감사합니다 @ih . 많은 도움이 됩니다. 따라서 JMP 쿼리 작성기에는 "필터" 또는 "주문" 버튼과 같은 "HAVING" 조건을 직접 수행할 수 있는 "숨겨진" 기능이 없습니다. 이 스레드에서 첨부한 테스트 테이블을 실행했습니다. 예, 보여주신 것과 동일한 쿼리 결과를 얻을 수 있습니다. 이 "HAVING" 기능을 수행하기 위해 JMP에서 3가지 옵션을 요약했습니다. 1) 방법을 다음과 같이 사용 @ih JMP Query Builder에서 사용자 정의 쿼리를 실행합니다. 이렇게 하면 쿼리 스크립트에 "HAVING" 키워드가 없습니다.2) 스크립트에서 HAVING 키워드를 사용하여 사용자 지정 쿼리를 실행합니다. 그것은 나를 위해 작동합니다. 사용자 지정 쿼리는 다음과 같습니다.
SELECT a.ID, a.val, Count (*) AS tot
FROM test a
GROUP BY a.val
HAVING ((Count (*)>1))
3) JMP Query Builder를 사용하지만 두 개의 테이블이 있습니다. 하나는 "테스트" 테이블이고 다른 하나는 열("val")별 JMP "요약"을 사용하는 "테스트" 테이블의 요약 테이블입니다. 이러한 방식으로 SQL 스크립트에 익숙하지 않은 사용자는 빌더에서 위의 두 테이블을 조인하고 "필터"를 사용하여 "HAVING" 조건을 달성할 수 있습니다.
마지막 것은 초기 목적입니다. 두 번째 요약 테이블을 사용하지 않고 사용자 정의 쿼리로 이동하지 않는 방법이 있으면 차임하십시오. 그렇지 않으면 이 토론을 끝낼 수 있을 것 같습니다.
Re: JMP Query Builder -- "HAVING" 기능을 적용하는 방법은 무엇입니까?두 번째 쿼리에서 조건을 만들고 원래 select 문에 조인한 다음 결과를 필터링하여 HAVING 절을 바꿀 수 있습니다.다음과 같이 표시됩니다.
SELECT a.column-names
FROM table-name a
LEFT JOIN (SELECT condition-group-column, summary(condition-summarized-column) as condition
FROM table-name
GROUP BY condition-group-column) b
ON a.condition-column = b.condition-column
WHERE condition > 1;
당신은 이것을 테스트 할 수 있습니다 db-fiddle 스키마에서 이것을 사용하여:
CREATE TABLE test (
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);
그리고 이것은 선택에서 :
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;
다음과 같아야 합니다.
