数据资源管理器查询 - 在导出中添加额外参数

我希望我的“回复过某主题的用户”列表中包含用户的姓名。

我尝试遵循另一个讨论中的惯例,该惯例使这些数据探索查询包含额外信息,但当我应用相同的语法时并未生效。

这是我当前运行的查询,它仅返回回复过该主题用户的“用户名”…

-- https://meta.discourse.org/t/68756/8?u=sidv

-- [params]
-- topic_id :topic_id = 536

SELECT u.username
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username

添加

 , u.name

在第一行的 u.username 之后。

非常感谢你这么快就帮忙解决这个问题,Jay!按照你的建议,我更新了以下内容:

SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username

……然后遇到了这个错误……

PG::GroupingError: ERROR:  column "u.name" must appear in the GROUP BY clause or be used in an aggregate function
LINE 12: SELECT u.username, u.name

于是我把查询语句改成了下面的样子,结果运行得非常顺利!:tada:

SELECT u.username, u.name
FROM badge_posts p
JOIN topics t ON p.topic_id = t.id 
JOIN users u ON p.user_id  = u.id
WHERE t.id = :topic_id
GROUP BY p.user_id,u.username,u.name

所以,在我最初的代码片段中,我添加了以下内容:

在 “SELECT” 行中添加了:
, u.name

在 “GROUP BY” 行中添加了:
,u.name

再次感谢 @pfaffman 帮我解决这个语法问题!

教育学博士学位终于开始发挥作用了!

干得漂亮!

:squinting_face_with_tongue: 没错!再次感谢 :wink: