Data Explorer Gruppe Bericht - Parameter Fehler

Ich habe gerade auf die neueste Version des Data Explorer aktualisiert, bevor ich dies gepostet habe, und ich kann bestätigen, dass dieses Problem für mich immer noch besteht.

Im Data Explorer Plugin gibt es eine Funktion, mit der Sie Abfragen für Gruppen freigeben können. Ich habe dies für die Abfrage getan, die aufeinanderfolgende besuchte Tage zählt, da Benutzer unbedingt wissen möchten, wie nahe sie an den Abzeichen für xxx besuchte Tage sind.

Dies hat bis vor kurzem funktioniert. Jetzt erhalte ich diese Fehlermeldung.

Der Fehler scheint durch die gesendete Anfrage verursacht zu werden (hier zeige ich den Netzwerkinspektor unter Firefox):
image

Es scheint die Parameterwerte nicht zu aktualisieren, während sie eingegeben werden (username=null, min_days=10 sind die Standardparameter, wenn Sie die Seite laden). Die Konsole gibt auch den Fehler “Uncaught TypeError: t is undefined” aus, wenn Sie entweder Text in das Feld username eingeben oder den Wert von min_days ändern. Diese Zeile verursacht den Fehler:

Dies ist das Beste, was ich tun kann, um das Problem zu verfolgen, ohne das Repository zu forken und jede Zeile zu debuggen. Ich wollte nur das Problem melden und bin auch neugierig, ob andere das gleiche Problem haben.

4 „Gefällt mir“

Danke @piffy für den Bericht. Wir haben kürzlich einige Änderungen am data-explorer-Plugin vorgenommen, daher könnte dies durchaus gültig sein. Ich habe mehrere Abfragen mit einer Benutzernamenseingabe getestet und bin nicht auf das in OP verlinkte Problem gestoßen. Könnten Sie Ihre Abfrage hier posten, damit ich sie testen kann?

Danke :slight_smile:

5 „Gefällt mir“
--[params]
-- string :username
-- int :min_days = 10

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- Der Wert von s ist für jede Gruppe aufeinanderfolgender Tage derselbe
       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

Ich habe es mit aktiviertem Safe Mode (nur offizielle Plugins) versucht und habe dasselbe Problem.

1 „Gefällt mir“

Danke, ich werde es mir ansehen.

2 „Gefällt mir“

Als zusätzlichen Tipp, während Isaac sich das ansieht, können Sie auch den Parameter user_id verwenden, um eine schicke Auto-Vervollständigungs-Parameterbox zu erhalten. Z. B.:

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

WITH consecutive_visits AS (
  SELECT user_id,
       visited_at,
       -- Der Wert von s ist für jede Gruppe aufeinanderfolgender Tage gleich
       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 „Gefällt mir“

Danke, gut zu wissen! Ergibt viel mehr Sinn als ein Freitextfeld

3 „Gefällt mir“

Entschuldigung für die Verzögerung @piffy. Das sollte jetzt behoben sein :slight_smile:

4 „Gefällt mir“

Es funktioniert, vielen Dank! Meine Benutzer schätzen diese Funktion sehr

3 „Gefällt mir“