postgresql 使用group by分组后怎么查询除分组外的其他字段

qq_29302441 2018-04-10 11:27:52
直接贴sql语句吧:
SELECT y.tableid,
c.tableshowname,
y.fieldid,--
y.fieldshowname,--
y.fieldname,
y.fielddatatype,
z.fieldvalue,
cast(z.valueid as text),
string_agg(z.dicname,',')
FROM cp_config_tableinfoadd c,cp_config_tableinfo y
LEFT JOIN
(SELECT a.valueid,
b.fieldid,
c.tableid,
c.tableshowname,
b.fieldshowname,
b.fielddatatype,
a.fieldvalue,
di.dicname
FROM cp_attach_subinfostore a,cp_config_tableinfo b,cp_config_tableinfoadd c,cp_dic_info di
WHERE b.dicid=di.dictypeid and a.fieldid IN
(SELECT fieldid
FROM cp_config_tableinfo
WHERE tableid =302 and isused=1 and isinstalled=0)
AND b.fieldid = a.fieldid
AND b.tableid = c.tableid
AND a.objid=1368 ORDER BY a.subinfoid) z
ON y.fieldid=z.fieldid
WHERE y.tableid=302 and c.tableid=y.tableid and y.isinstalled=0 group by y.fieldid,c.tableshowname,z.fieldvalue,z.valueid order by z.valueid,y.orderintable ;
我是通过分组,多行合并为一列string_agg(z.dicname,','),
现在查出来的结果如下图

后边三列值查不出来了,只有进行分组的那一行有值
...全文
3998 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-04-11
  • 打赏
  • 举报
回复
不做 group by ,把数据弄出来看看,从语句上盾,select 里面有两个列没有在group by 里面

954

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧