假设我有一张包含此数据的表格:
prename name date
--------------------------
prename1 name1 date1
prename2 name2 date1
prename3 name3 date2
如何通过查询获得正确的组,如下所示:
date name prename
-------------------------
date1 name1,name2 prename1,prename2
... ... ...
我需要从另一个表中获取我的名字和名字,以便我使用外连接:
select u.name, u.prename, extract(day from date) as day
from t1 u
full join t2 d on d.id = u.id
group by day
我收到错误:
选择列表中的表达式无效(不包含在 聚合函数或GROUP BY子句
答案 0 :(得分:2)
您似乎想要一个查询,例如:
select extract(day from date) as dte, list(u.name, ',') as names,
list(u.prename, ',') as prenames
from t1 u join
t2 d
on d.id = u.id
group by extract(day from date)
order by dte;
注意:
- 您极不可能需要full outer join
。从inner join
开始,看看是否符合您的要求。
- group by
中的表达式定义结果集中的每一行。
- list()
执行聚合字符串连接。