tools-and-features-hogql

द्वारा posthog

PostHog एनालिटिक्स के लिए HogQL क्वेरी

npx skills add https://github.com/posthog/skills --skill tools-and-features-hogql

HogQL queries for PostHog

This skill helps you write HogQL queries for PostHog analytics. HogQL is PostHog's SQL dialect, a wrapper around ClickHouse SQL with simplified property access and PostHog-specific functions.

Reference files

  • references/expressions.md - Sql expressions - docs
  • references/aggregations.md - Supported aggregations - docs
  • references/clickhouse-functions.md - Supported clickhouse functions - docs
  • references/data-access.md - Accessing data using sql - docs
  • references/variables.md - Sql variables - docs
  • references/useful-functions.md - Useful sql functions - docs
  • references/posthog.md - PostHog table schemas (events, persons, groups, sessions)
  • references/sessions.md - Sessions - docs

Consult the documentation for SQL syntax, available functions, and query patterns.

Key principles

  • Property access: Use properties.$property_name for event properties and person.properties.$property_name for person properties
  • Null handling: HogQL has simplified null handling compared to raw ClickHouse SQL
  • Filters placeholder: Use {filters} in queries to allow UI-based filtering in PostHog dashboards
  • Aggregations: Prefer ClickHouse aggregation functions like count(), uniq(), avg(), sum()

Common patterns

Event queries

SELECT event, count()
FROM events
WHERE {filters}
GROUP BY event
ORDER BY count() DESC

Property breakdowns

SELECT properties.$browser AS browser, count()
FROM events
WHERE event = '$pageview' AND {filters}
GROUP BY browser

Person properties

SELECT person.properties.email, count()
FROM events
WHERE {filters}
GROUP BY person.properties.email

Framework guidelines

  • Use properties.$name syntax for event properties, person.properties.$name for person properties
  • Use bracket notation for special characters like properties['$feature/cool-flag']
  • For cohorts, filter with person_id IN COHORT 'cohort-name'
  • For actions, use matchesAction('action-name') in WHERE clauses
  • Include {filters} placeholder in WHERE clauses to enable UI-based filtering in dashboards
  • Use {variables.name} for reusable SQL variables across dashboards
  • Access dashboard date range with {filters.dateRange.from} and {filters.dateRange.to}
  • ALWAYS include a time range filter - shorter is faster (e.g., timestamp >= now() - INTERVAL 7 DAY)
  • Prefer uniq() over count(distinct) for counting unique values - it's more efficient
  • Don't scan the same table multiple times - use materialized views for reusable subsets
  • Use timestamp-based pagination instead of OFFSET for large datasets
  • Name queries descriptively for easier debugging in query_log
  • Use dateTrunc() for time-based grouping (e.g., dateTrunc('day', timestamp))
  • For funnel queries, use windowFunnel() or sequenceMatch() functions
  • Test queries in the PostHog SQL editor before using them in insights or the API

posthog की और Skills

error-tracking-hono
posthog
PostHog द्वारा Hono के लिए त्रुटि ट्रैकिंग
tuning-incremental-sync-config
posthog
एक सिंक का कॉन्फ़िगरेशन ExternalDataSchema पर रहता है और इसे external-data-schemas-partial-update के माध्यम से कभी भी बदला जा सकता है। अधिकांश परिवर्तन गैर-विनाशकारी होते हैं (अगले सिंक पर प्रभावी होते हैं), लेकिन कुछ (sync_type बदलना, प्राथमिक कुंजियाँ बदलना) को सिंक किए गए डेटा को दूषित होने से बचाने के लिए सावधानीपूर्वक संभालने की आवश्यकता होती है।
playwright-test
posthog
प्लेराइट परीक्षण लिखें, सुनिश्चित करें कि यह चले, और अस्थिर न हो।
error-tracking-ruby
posthog
PostHog द्वारा Ruby के लिए त्रुटि ट्रैकिंग
authoring-log-alerts
posthog
PostHog प्रोजेक्ट में सेवाओं पर उपयोगी, कम-शोर वाले लॉग अलर्ट लिखें। जब उपयोगकर्ता अपने लॉग के लिए अलर्ट सेट करने, जोड़ने के लिए सुझाव देने आदि के लिए कहे, तब उपयोग करें।
making-scenes-tab-aware
posthog
Guides converting PostHog frontend scenes to be tab aware for internal scene tabs. Use when adding or refactoring a `SceneExport` scene, fixing state leaking…
posthog-survey-creator
posthog
PostHog में सर्वेक्षण बनाएँ और कॉन्फ़िगर करें, मार्गदर्शित बातचीत के माध्यम से। इस कौशल का उपयोग तब करें जब कोई उपयोगकर्ता सर्वेक्षण बनाना चाहता है, उपयोगकर्ता प्रतिक्रिया एकत्र करना चाहता है, चलाना चाहता है…
authoring-scouts
posthog
PostHog Signals स्काउट्स को लिखने, संपादित करने और अनुकूलित करने का तरीका — ये निर्धारित एजेंट हैं जो किसी प्रोजेक्ट को स्कैन करते हैं और Signals इनबॉक्स में रिपोर्ट लिखते हैं। उपयोग तब करें जब कोई उपयोगकर्ता…