2016-11-07 48 views
0

我有一個關聯規則表(稱爲先行,後繼和支持)。我想在GraphViz中繪製它們。我變得如此懶惰,以至於我不想編寫任何命令腳本,我只想直接在SQL中選擇DOT源代碼。PostgreSQL中的空GROUP BY

我的想法是一樣簡單

SELECT string_agg('"' || x || '" -> "' || y || '" [weight="' || weight || '"]', E'\n') 
FROM rules 
GROUP BY ...; 

然後我意識到我在與GROUP BY條款令人驚訝的困難。因爲我需要對所有行進行分組,所以應該將該子句留空。

GROUP BY NOTHING最優雅的方式是什麼,即對一組空列進行分組?

+3

只是不使用「GROUP BY」? – Lamak

+0

@Lamak Aaah,非常容易,謝謝,我以爲我嘗試過,但顯然我沒有。 – Tregoreg

回答

1

要彙總全部行,您不需要與GROUP BY組成組,並且可以只是省略GROUP BY子句。 The manual:

如果有聚合函數,但沒有GROUP BY子句,該查詢是 視爲具有包含所有選定行的單個基團。

或者(如果您正在構建動態查詢字符串),你可以使用任何常量表達式,如:

... 
GROUP BY true 

不能使用 GROUP BY 1 用於此目的,因爲整型常量作爲位置參考(序號)在GROUP BY