首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索使用groupby列聚合(如计数)的列值

问如何检索使用groupby列聚合(如计数)的列值
EN

Stack Overflow用户
提问于 2013-07-19 17:15:13
回答 1查看 59关注 0票数 0

我希望显示属于group by sql语句一部分的聚合列的内容。示例:

代码语言:javascript
复制
SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders
WHERE Orders.ShipperID=Shippers.ShipperID
GROUP BY ShipperName

在上面的例子中,输出给我的结果之一是计数,而我需要的是聚合的orders.orderID实际值。假设一个结果计数显示为2,我需要知道这两个分组的值是什么。此结果应作为同一表中的另一列。

EN

回答 1

Stack Overflow用户

发布于 2013-07-19 17:18:59

在GROUP_CONCAT上试试这个

代码语言:javascript
复制
 SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders , array_agg(Orders.OrderID) as which_are_those FROM Orders
 WHERE Orders.ShipperID=Shippers.ShipperID
 GROUP BY ShipperName

array_agg返回一个数组,但您可以将其转换为文本并根据需要进行编辑(请参阅下面的说明)。

在8.4版本之前,您必须在使用之前自己定义它:

代码语言:javascript
复制
CREATE AGGREGATE array_agg (anyelement)
(
sfunc = array_append,
stype = anyarray,
initcond = '{}'
);

或者简单地这么说:

代码语言:javascript
复制
SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders , string_agg(Orders.OrderID, ',') as which_are_those FROM Orders
 WHERE Orders.ShipperID=Shippers.ShipperID
 GROUP BY ShipperName
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17742343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档