gpt4 book ai didi

sql - PostgreSQL 中的空 GROUP BY

转载 作者:行者123 更新时间:2023-12-02 04:03:55 24 4
gpt4 key购买 nike

我有一个关联规则表(例如前件、后件和支持)。我想在 GraphViz 中绘制它们。我变得如此懒惰,以至于我不想为此编写任何命令式脚本,我只想直接在 SQL 中选择 DOT 源。

我的想法很简单

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

然后我意识到我在使用 GROUP BY 子句时遇到了令人惊讶的困难。因为我需要对所有行进行分组,所以该子句应留空。

GROUP BY NOTHING(即对一组空列执行分组)最优雅的表达方式是什么?

最佳答案

要聚合所有行,您不需要使用GROUP BY形成组,并且可以省略GROUP BY子句。 The manual:

If there are aggregate functions but no GROUP BY clause, the query istreated as having a single group comprising all the selected rows.

或者(如果您动态构建查询字符串)您可以使用任何常量表达式,例如:

...
GROUP BY true

您不能使用 GROUP BY 1 来实现此目的,因为整数用作 SELECT 列表项的位置引用(序数)在 GROUP BY 子句中:

关于sql - PostgreSQL 中的空 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com