JMP 查詢產生器-如何應用「HAVING」功能?大家好,我有幾個帶有“HAVING”功能的 SQL 查詢。我想看看是否可以在 JMP 查詢產生器中設定。我搜尋了這個社區,但沒有看到有關它的討論(也許我錯過了?)。據我了解,有一個自訂 SQL 功能可用於實現此功能。但問題是這樣一來,所有優秀的 JMP 查詢產生器互動功能將不再可見。只是想知道有關設置“HAVING”條件的任何意見/建議嗎?典型的 SQL 腳本如下。只有“HAVING”條件似乎不適用於建構器。您的見解將不勝感激!
SELECT column-names
FROM table-name
WHERE condition
GROUP BY column-names
<STRONG>有條件</STRONG>
ORDER BY column-names
資料存取回复:JMP 查詢生成器——如何應用“HAVING”功能?謝謝布賴恩的更新。 是的,如果在未來的版本中有這個增強功能會很好,但對於我的應用程序來說不是必須的,就像現在一樣。回复:JMP 查詢生成器——如何應用“HAVING”功能?嗨,TG,
查詢生成器中沒有隱藏 HAVING,抱歉!這肯定是一個增強的考慮。 目前,自定義 SQL 編輯器將是使用它的唯一方式,正如您所指出的那樣,一旦您採用這種方式就無法返回交互模式。
布賴恩·科科倫
JMP開發
回复:JMP 查詢生成器——如何應用“HAVING”功能?謝謝@ih . 它有很大幫助。 因此,JMP 查詢生成器中沒有可以直接完成“HAVING”條件的“隱藏”功能,相當於“篩選”或“排序”按鈕。 我運行了您在此線程中附加的測試表。 是的,我可以獲得與您顯示的相同的查詢結果。 我在 JMP 中總結了 3 個選項來執行此“HAVING”功能:1)使用方式@ih提到過,在 JMP 查詢生成器中運行自定義查詢,請注意,以這種方式在查詢腳本中沒有“HAVING”關鍵字。2) 運行自定義查詢,在腳本中使用 HAVING 關鍵字。 這個對我有用。 自定義查詢如下所示:
SELECT a.ID, a.val, Count (*) AS tot
FROM test a
GROUP BY a.val
HAVING ((Count (*)>1))
3) 使用 JMP 查詢生成器,但有兩個表:一個是“測試”表,另一個是使用 JMP“匯總”列(“val”)的“測試”表的匯總表。 這樣,不熟悉SQL腳本的用戶可以在構建器中加入上述兩張表,使用“Filter”實現“HAVING”條件。
請注意,最後一個是最初的目的。 如果有辦法避免使用第二個匯總表,並且不進入自定義查詢,請插話。 否則我認為我們可以結束討論。
回复:JMP 查詢生成器——如何應用“HAVING”功能?您可以通過在第二個查詢中創建您的條件,將其加入您的原始選擇語句,然後過濾結果來替換 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;
你可以測試這個數據庫小提琴在架構中使用它:
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;
它應該看起來像這樣:
