【发布时间】:2016-05-09 04:43:08
【问题描述】:
在这个 postgres 查询中
SELECT
q.*,
q.user_id = 1 mine,
first(u.username) username,
sum(case when v.answer=0 then 1 else 0 end) no_count,
sum(case when v.answer=1 then 1 else 0 end) yes_count
FROM question q
JOIN "user" u ON q.user_id=u.id
JOIN vote v ON v.question_id=q.id
GROUP BY q.id
ORDER BY q.date_created desc
LIMIT 20
OFFSET 0
它说我需要username 上的聚合。在这种情况下,我收到问题,每个问题都是由某个用户创建的。我加入投票,但按问题 id 分组,因此在分组之前,每个唯一问题的用户名字段都是相同的。所以这意味着在聚合时,我真的可以选择任何值,因为它都是一样的。但是我找不到任何要使用的聚合函数。我尝试了随机、第一个、最后一个、任何一个,但都没有工作,甚至没有定义。
有人知道怎么处理吗?
【问题讨论】:
-
只需将
username添加到group by子句,根本不要聚合。
标签: postgresql group-by