关于Postgresql选择的一个问题。这可以正常工作:
SELECT
name,SUM(cash)
FROM
costumers
GROUP BY (name)
但是如何在GROUP BY子句中连接两个(或更多)字段? 这就是我试过的:
SELECT
name,SUM(cash)
FROM
costumers
GROUP BY (name || ' ' || nickname)
答案 0 :(得分:2)
除非你需要选择你所分组的表达式,否则这将有效:
SELECT
(name || ' ' || nickname) AS name_and_nickname,
SUM(cash) AS total_cash
FROM costumers
GROUP BY (name || ' ' || nickname)
另一种选择是通过用逗号分隔两个字段来分组:
SELECT
name, nickname, SUM(cash) AS total_cash
FROM costumers
GROUP BY name, nickname
请注意,这两个不完全等效。特别是这两行最终将与第一个版本位于同一组中,并在第二个版本中位于不同的组中:
name | nickname | cash
--------+-----------+----
foo | bar baz | 10
foo bar | baz | 20
第二种选择可能就是你的意思。