SQL Mobile ticketing

Event Entries Markback Counts

Event Entries Markback Counts model for mobile ticketing.

source-preserved

Blocks

event_entries_markback_counts.sql · 31 lines
inferred
-- models/event_entries_markback_counts.sql
{{ config(materialized='view') }}

SELECT
  s.ticket_id as ticket_id,
  sum(s.marked_up) as marked_up,
  sum(s.marked_back) as marked_back
FROM
  (
    SELECT
      tm.ticketid as ticket_id,
      tm.markedback as marked_backed,
      IF(tm.markedback < 0, sum(tm.markedback), 0) as marked_up,
      IF(tm.markedback > 0, sum(tm.markedback), 0) as marked_back
    FROM event_ticket_changes as tm
    GROUP BY tm.id
  ) as s
GROUP BY s.ticket_id

# models/schema.yml
version: 2

models:
  - name: event_entries_markback_counts
    columns:
      - name: ticket_id
        tests:
          - unique
          - not_null
      - name: marked_up
      - name: marked_back

Assumptions

  • materialized='view' is the default; no persist hint found.
  • schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
event_entries_markback_counts.sql · 15 lines
source-preserved validation: parses
SELECT
  s.ticket_id as ticket_id,
  sum(s.marked_up) as marked_up,
  sum(s.marked_back) as marked_back
FROM
  (
    SELECT
      tm.ticketid as ticket_id,
      tm.markedback as marked_backed,
      IF(tm.markedback < 0, sum(tm.markedback), 0) as marked_up,
      IF(tm.markedback > 0, sum(tm.markedback), 0) as marked_back
    FROM event_ticket_changes as tm
    GROUP BY tm.id
  ) as s
GROUP BY s.ticket_id
event_entries_markback_counts.view.lkml · 50 lines
inferred
view: event_entries_markback_counts {
  derived_table: {
    sql: SELECT
  s.ticket_id as ticket_id,
  sum(s.marked_up) as marked_up,
  sum(s.marked_back) as marked_back
FROM
  (
    SELECT
      tm.ticketid as ticket_id,
      tm.markedback as marked_backed,
      IF(tm.markedback < 0, sum(tm.markedback), 0) as marked_up,
      IF(tm.markedback > 0, sum(tm.markedback), 0) as marked_back
    FROM event_ticket_changes as tm
    GROUP BY tm.id
  ) as s
GROUP BY s.ticket_id ;;
  }

  dimension: ticket_id {
    type: number
    primary_key: yes
    hidden: yes
    sql: ${TABLE}.ticket_id ;;
  }

  dimension: marked_up {
    type: number
    hidden: yes
    sql: IFNULL(abs(${TABLE}.marked_up),0) ;;
  }

  dimension: marked_back {
    type: number
    hidden: yes
    sql: IFNULL(${TABLE}.marked_back,0) ;;
  }

  measure: total_marked_up {
    description: "Total number of event_entries marked up"
    type: sum
    sql: ${marked_up} ;;
  }

  measure: total_marked_back {
    description: "Total number of event_entries marked back"
    type: sum
    sql: ${marked_back} ;;
  }
}
event_entries_markback_counts.view.lookml · 39 lines
source-preserved
- view: event_entries_markback_counts
  derived_table:
    sql: SELECT
  s.ticket_id as ticket_id,
  sum(s.marked_up) as marked_up,
  sum(s.marked_back) as marked_back
FROM
  (
    SELECT
      tm.ticketid as ticket_id,
      tm.markedback as marked_backed,
      IF(tm.markedback < 0, sum(tm.markedback), 0) as marked_up,
      IF(tm.markedback > 0, sum(tm.markedback), 0) as marked_back
    FROM event_ticket_changes as tm
    GROUP BY tm.id
  ) as s
GROUP BY s.ticket_id
  fields:
  - dimension: ticket_id
    type: number
    primary_key: true
    hidden: true
    sql: ${TABLE}.ticket_id
  - dimension: marked_up
    type: number
    hidden: true
    sql: IFNULL(abs(${TABLE}.marked_up),0)
  - dimension: marked_back
    type: number
    hidden: true
    sql: IFNULL(${TABLE}.marked_back,0)
  - measure: total_marked_up
    type: sum
    description: Total number of event_entries marked up
    sql: ${marked_up}
  - measure: total_marked_back
    type: sum
    description: Total number of event_entries marked back
    sql: ${marked_back}

Contents

  • event_entries_markback_counts.sql
  • event_entries_markback_counts.sql
  • event_entries_markback_counts.view.lkml
  • event_entries_markback_counts.view.lookml