데이터 탐색기 그룹 보고서 - 매개변수 오류

이 글을 올리기 전에 Data Explorer를 최신 버전으로 업데이트했으며, 이 문제가 여전히 발생하고 있음을 확인했습니다.

Data Explorer 플러그인에는 쿼리를 그룹에 노출할 수 있는 기능이 있습니다. xxx일 연속 방문 배지에 얼마나 가까운지 알고 싶어하는 사용자들이 많아서, 연속 방문 일수를 계산하는 쿼리에 대해 이 기능을 사용했습니다.

최근까지 잘 작동하고 있었습니다. 그런데 이제 다음과 같은 오류가 발생합니다.

오류는 요청이 전송될 때 발생하는 것 같습니다. (여기서는 Firefox의 네트워크 검사기를 보여주고 있습니다):
image

페이지를 로드할 때의 기본 파라미터 값(username=null, min_days=10)이 입력되는 대로 업데이트되지 않는 것으로 보입니다. username 입력창에 텍스트를 입력하거나 min_days 값을 변경할 때 콘솔에도 “Uncaught TypeError: t is undefined” 오류가 표시됩니다. 오류를 발생시키는 코드는 다음과 같습니다:

리포지토리를 포크하여 각 줄을 디버깅하는 수준까지는 아니지만, 문제를 추적할 수 있는 최선의 방법입니다. 문제를 보고하고 싶었고, 다른 분들도 동일한 문제를 겪고 있는지 궁금합니다.

4개의 좋아요

@piffy님, 리포트를 올려주셔서 감사합니다. 최근 data-explorer 플러그인에 몇 가지 변경 사항이 있었기 때문에 이 문제가 실제로 존재할 가능성이 높습니다. 사용자명(usernames) 입력을 사용하여 여러 쿼리를 테스트해 보았으나, OP에서 링크된 문제를 재현하지는 못했습니다. 테스트해 볼 수 있도록 해당 쿼리를 여기에 공유해 주시겠습니까?

감사합니다 :slight_smile:

5개의 좋아요
--[params]
-- string :username
-- int :min_days = 10

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- s 값은 연속된 날짜 그룹마다 동일합니다
       visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
    FROM user_visits
    WHERE user_id = (SELECT id FROM users WHERE username = :username)
)

SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC

안전 모드(공식 플러그인만 사용)를 켜서 시도해 보았지만 동일한 문제가 발생합니다.

1개의 좋아요

감사합니다. 확인해 보겠습니다.

2개의 좋아요

Isaac가 그 부분을 확인하는 동안, 재미있는 추가 팁으로 user_id 파라미터를 사용하면 깔끔한 자동완성 파라미터 상자를 얻을 수 있습니다. 예:

-- [params]
-- user_id :user
-- int :min_days = 10

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- s의 값은 연속된 각 날짜 그룹마다 동일합니다
       visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
    FROM user_visits
    WHERE user_id = :user
)

SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC

5개의 좋아요

고마워요, 알아서 좋아요! 자유 형식 텍스트 상자보다 훨씬 이해하기 쉬워요.

3개의 좋아요

@piffy 지연된 점 죄송합니다. 이제 수정되었을 거예요 :slight_smile:

4개의 좋아요

동작하네요, 정말 감사합니다! 제 사용자분들께서 이 기능을 정말 좋아합니다.

3개의 좋아요