我需要计算由不同的users_id发送的消息的平均数量。我在表“comments”下有消息,在表“user”下有不同的users_id。它们在另一个表“tickets”的使用下以如下方式连接:
left outer join tickets t on c.ticket_id = t.ticket_id
left outer join "users" u on u.user_id = t.requester
我也不知道该从哪里开始。
select user_id,
count avg (distinct c.ticket_id)
from "comments" c
group by ticket_id
left outer join tickets t on c.ticket_id = t.ticket_id
left outer join "users" u on u.user_id = t.requester
where t.created_at between '2022-10-01' and '2022-10-31'
2条答案
按热度按时间xqkwcwgp1#
这 可能 会 得到 您 想要 的 结果 。 公用 表 表达式 计算 每个 票证 的 评论 数 , 然后 选择 按 用户 分组 的 每个 票证 的 平均 计数 。
中 的 每 一 个
htrmnn0y2#
我们 将 从 最初 的 查询 中 开始 提问 :
中 的 每 一 个
有 鉴于 此 , 我们 需要 做出 一些 改变 :
join
和where
必须 列 在group by
之前-
separators and just haveyyyyMMdd
。created_at
是 完整 的 日期 时间 , 您 可能 需要 11 月 1 日 的 独占 上限 , 而 不是 10 月 31 日 的 独占 上限 。 如果 不是 这样 , 则 仅 限 日期 值 的 正常 命名 约定 是 使用 " created _ on " 之类 的 名称 , 而 不是 " created _ at " , 使用 独占 上限 仍然 是 一 件 好事 。GROUP BY
是ticket_id
, 则 不能 选择user_id
。 在 这种 情况 下 ,user_id
可能 对 两者 都 是 正确 的 。count
和avg()
。把 所有 这些 放在 一起 , 你 最终 会 得到 这个 :
格式
注 我 必须 猜测
comments
表 的 主键 。最 后 , 我 觉得 奇怪 的 是 , 需要 一 张 票 来 暗示 与 评论 相 关联 的 用户 。