# 仅为当前用户返回结果

**URL:** https://meta.discourse.org/t/only-return-results-for-the-current-user/304187
**Category:** Data & reporting
**Created:** [2024年四月16日 23:28 UTC](https://meta.discourse.org/t/only-return-results-for-the-current-user/304187 "2024-04-16T23:28:31Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![davidkingham](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/davidkingham/32/119528_2.png) [@davidkingham](https://meta.discourse.org/u/davidkingham)
#### Post date: [2024年四月16日 23:28 UTC](https://meta.discourse.org/t/only-return-results-for-the-current-user/304187/1 "2024-04-16T23:28:31Z")

</div>

我正在尝试创建一个对用户公开的查询，但只想返回当前用户的结果，而不是所有人的。下面是返回所有用户统计信息的管理员的私有查询。我似乎找不到一种方法来仅定位当前用户。谢谢！

```plaintext
-- [params]
-- string :interval = 1 month

SELECT
  u.username,
  COALESCE(t.created_topics, 0) AS created_topics,
  COALESCE(p.replies_to_others, 0) AS replies_to_others,
  COALESCE(ROUND(p.replies_to_others::numeric / NULLIF(t.created_topics, 0), 2), 0) AS ratio
FROM
  users u
  LEFT JOIN (
    SELECT
      user_id,
      COUNT(*) AS created_topics
    FROM
      topics
    WHERE
      created_at >= CURRENT_DATE - INTERVAL :interval
      AND category_id IN (
        SELECT id FROM categories WHERE parent_category_id = 87 OR id = 87
      )
    GROUP BY
      user_id
  ) t ON t.user_id = u.id
  LEFT JOIN (
    SELECT
      p.user_id,
      COUNT(DISTINCT p.topic_id) AS replies_to_others
    FROM
      posts p
      JOIN topics t ON p.topic_id = t.id
    WHERE
      p.post_number > 1
      AND p.user_id != t.user_id
      AND p.created_at >= CURRENT_DATE - INTERVAL :interval
      AND t.category_id IN (
        SELECT id FROM categories WHERE parent_category_id = 87 OR id = 87
      )
      AND LENGTH(p.raw) >= 100
      AND p.post_number = (
        SELECT MIN(p2.post_number)
        FROM posts p2
        WHERE p2.topic_id = p.topic_id
          AND p2.user_id = p.user_id
          AND p2.post_number > 1
      )
    GROUP BY
      p.user_id
  ) p ON p.user_id = u.id
WHERE
  t.created_topics > 0 OR p.replies_to_others > 0
ORDER BY
  ratio DESC

```

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2024年四月16日 23:52 UTC](https://meta.discourse.org/t/only-return-results-for-the-current-user/304187/2 "2024-04-16T23:52:11Z")

</div>

我认为那是一个功能请求。
