如何在列中列出mysql聚合函数的项


how to list items of a mysql aggregate function within the column

所以这是我的查询

SELECT 
bia_clients.name "Builder Name", 
bia_panels.value "Name on Panel", 
bia_sizes.size "Size", 
bia_panels.sign_id "Sign Locations", 
count(bia_panels.sign_id) AS "Number of Panels", 
revenue_sharing AS "Amount Per Panel", 
count(bia_panels.sign_id) * revenue_sharing "Return to City"
FROM bia_panels
JOIN bia_projects ON bia_panels.project_id = bia_projects.id
JOIN bia_clients ON bia_clients.id = bia_projects.client_id
JOIN bia_sizes on bia_sizes.id = bia_panels.size_id
JOIN bia_prices ON bia_prices.size_id=bia_sizes.id
WHERE LEFT(bia_panels.sign_id, 3) = 042
group by bia_panels.value with rollup;

这段代码可以按预期获取我的列和总数此处

建筑商名称|面板上的名称|尺寸|标志位置|面板数量|每个面板的金额|返回城市______________________________________________________________________________________________________________________________________汉普顿酒店|汉普顿酒店|Single | 042182|2 | 19.00|38:00BIA|Model Homes|Single |042301N|1|19.00|19.00Richmond |美国|单身|042092|319.00|57.00标准太平洋|Standard Pacific|Single | 042102|7|19.00|133.00标准太平洋|NULL |单人|042102|13|19.00|247.00

我遇到的问题是获取"标志位置"字段,我希望它列出为该列构建总数的每个项目例如,我会把我的专栏变成这个

…|标志位置|面板数量|。。。…_________________________________________________。。。|042182042117|2||042301N|1||042092、042097、042005 |3。。。

至于格式化,我可以使用一些COALESCE语句来清理空行,我不担心

但我的难题是如何使"标志位置"字段列出的所有位置

我尝试使用嵌套的select语句(select id from table where),但它仍然只返回第一项

有什么想法吗?

尝试使用GROUP_CONCT()

来自文档:

GROUP_CONCT(expr)

此函数返回一个字符串结果,该结果与连接的非NULL组中的值。如果没有非NULL值,则返回NULL。

在您的情况下:

...
GROUP_CONCAT(bia_panels.sign_id) AS "Sign Locations", 
...