0

关于 Postgresql 选择的一个问题。这可以正常工作:

SELECT 
  name,SUM(cash)
FROM 
  costumers
GROUP BY (name)

但是如何在 GROUP BY 子句中连接两个(或更多)字段?这是我尝试过的:

SELECT 
  name,SUM(cash)
FROM 
  costumers
GROUP BY (name || ' ' || nickname)
4

1 回答 1

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

第二个选项可能就是你的意思。

于 2012-08-21T19:33:07.330 回答