SQL
Gaming fantasy
Entry Fees
Entry Fees model for gaming fantasy.
source-preserved
Blocks
entry_fees.sql · 68 lines
inferred
-- models/entry_fees.sql
{{ config(materialized='view') }}
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions AS transactions
WHERE TransType=1
UNION ALL
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions_Archive AS transactions_archive
WHERE TransType=1
# models/schema.yml
version: 2
models:
- name: entry_fees
columns:
- name: id
- name: user_id
- name: wlsid
- name: RoundId
- name: LeagueId
- name: TourId
- name: inr2usd
- name: amount
- name: amount_segments
- name: amount_usd
- name: country
- name: AEFPU_USD
- name: Category
- name: New_Repeat_User_monthly
- name: New_Repeat_User_weekly
- name: New_Repeat_User_daily
- name: New_Repeat_User_yearly
- name: AEFPU
- name: Is_Organic
- name: Is_Growth
- name: Is_Marketing
- name: Active_Flag
- name: Device
- name: Game
- name: user_agent
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.
entry_fees.sql · 33 lines
source-preserved
validation: parses
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions AS transactions
WHERE TransType=1
UNION ALL
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions_Archive AS transactions_archive
WHERE TransType=1
entry_fees.view.lkml · 282 lines
inferred
view: entry_fees {
derived_table: {
sql: SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions AS transactions
WHERE TransType=1
UNION ALL
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions_Archive AS transactions_archive
WHERE TransType=1 ;;
}
dimension: id {
type: int
hidden: yes
sql: ${TABLE}.id ;;
}
dimension: user_id {
label: "UserID"
type: int
drill_fields: [detail*]
sql: ${TABLE}.UserId ;;
}
dimension: wlsid {
type: number
hidden: yes
sql: ${TABLE}.WLSId ;;
}
dimension: RoundId {
type: int
sql: ${TABLE}.RoundId ;;
}
dimension: LeagueId {
type: int
sql: ${TABLE}.LeagueId ;;
}
dimension: TourId {
type: int
sql: ${TABLE}.TourId ;;
}
dimension: inr2usd {
type: number
hidden: yes
sql: case when ${TABLE}.WLSId NOT IN (2,6,9,12,28,29) THEN ${DailyCurrencyRate.conversion} else 1 END ;;
}
dimension: amount {
label: "Entry Fees in Rupees"
type: number
value_format: "\"₹\"#,##0.00"
sql: ${TABLE}.Amount ;;
}
dimension: amount_segments {
type: tier
value_format: "\"₹\"#,##0.00"
sql: ${amount} ;;
}
dimension: amount_usd {
label: "Entry Fees in USD"
type: number
value_format: "$#,##0.00"
sql: (${TABLE}.Amount * ${inr2usd}) ;;
}
dimension: country {
label: "Country (India Or US)"
type: string
sql: Case when ${TABLE}.WLSId in (2,6,9,12,28,29) Then "US" else "India" End ;;
}
dimension: AEFPU_USD {
label: "Average Entry Fees Per User USD"
type: number
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: ${Entry_Fees_USD}/${User_Count} ;;
}
dimension: Category {
label: "Category (Marketing/Organic/Growth/Referral)"
type: string
sql: ${userstatus.category} ;;
}
dimension: New_Repeat_User_monthly {
label: "New Or Repeat User MonthWise"
type: string
sql: case WHEN ${created_at_month} = ${userstatus.first_league_join_date_month} Then "New " Else "Repeat " End ;;
}
dimension: New_Repeat_User_weekly {
label: "New Or Repeat User WeekWise"
type: string
sql: case WHEN ${created_at_week} = ${userstatus.first_league_join_date_week} Then "New " Else "Repeat " End ;;
}
dimension: New_Repeat_User_daily {
label: "New Or Repeat User Daily"
type: string
sql: case WHEN ${created_at_date} = ${userstatus.first_league_join_date_date} Then "New " Else "Repeat " End ;;
}
dimension: New_Repeat_User_yearly {
label: "New Or Repeat User YearWise"
type: string
sql: case WHEN ${created_at_year} = ${userstatus.first_league_join_date_year} Then "New " Else "Repeat " End ;;
}
dimension: AEFPU {
label: "Average Entry Fees Per User"
type: number
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: ${Entry_Fees}/${User_Count} ;;
}
dimension: Is_Organic {
type: yesno
hidden: yes
sql: ${userstatus.category}="Organic" ;;
}
dimension: Is_Growth {
type: yesno
hidden: yes
sql: ${userstatus.category}="Growth" ;;
}
dimension: Is_Marketing {
type: yesno
hidden: yes
sql: ${userstatus.category}="Marketing" ;;
}
dimension: Active_Flag {
label: "Active or Deactivated"
type: string
sql: CASE When ${userstatus.Status}= 1 THEN "Active " ELSE "Deactivated " END ;;
}
dimension: Device {
label: "Device (Mobile OR Desktop)"
type: string
sql: ${userstatus.Device} ;;
}
dimension: Game {
label: "Game (Cricket/Football/Rugby)"
type: string
sql: Case when ${TABLE}.WLSId in (1,2,5,6,7,8,13,15,16,17,18,19,20,21,22,23,24) Then "Cricket" when ${TABLE}.WLSId in (9,10,11,12,14,25,26) Then "Football" when ${TABLE}.WLSId in (27,28,29,30) Then "Rugby" End ;;
}
dimension: user_agent {
label: "Browser"
type: string
sql: ${TABLE}.UserAgent ;;
}
dimension_group: created_at {
label: "League Join Date"
type: time
timeframes: [date, week, month, year, time, raw]
datatype: datetime
sql: ${TABLE}.CreatedAt ;;
}
dimension_group: created_date_unix {
label: "League Join Date"
type: time
timeframes: [date, raw]
datatype: epoch
sql: ${TABLE}.created_date_unix ;;
}
measure: Entry_Fees_Dollar {
label: "Total Entry Fees In Dollar"
type: sum
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: (${amount} * ${inr2usd}) ;;
}
measure: Entry_Fees {
label: "Total Entry Fees In Rupees"
type: sum
value_format: "\"₹\"#,##0.00"
drill_fields: [detail*]
sql: ${amount} ;;
}
measure: Entry_Fees_USD {
label: "Total Entry Fees In Rupees"
type: sum
value_format: "$#,##0.00"
drill_fields: [detail*]
sql: ${amount_usd} ;;
}
measure: User_Count {
label: "Total Paid Users"
type: count_distinct
drill_fields: [userstatus.userid, userstatus.user_full_name, userstatus.email_id, userstatus.date_of_registration]
sql: ${user_id} ;;
}
measure: league_join_count {
label: "Total League Joining Events"
type: count
}
measure: Organic_User_count {
type: count_distinct
hidden: yes
filters: [userstatus.category: "Organic"]
sql: ${user_id} ;;
}
measure: Referral_User_count {
type: count_distinct
hidden: yes
filters: [userstatus.category: "Referral"]
sql: ${user_id} ;;
}
measure: Growth_User_count {
type: count_distinct
hidden: yes
filters: [userstatus.category: "Growth"]
sql: ${user_id} ;;
}
measure: Marketing_User_count {
type: count_distinct
hidden: yes
filters: [userstatus.category: "Marketing"]
sql: ${user_id} ;;
}
measure: virality {
label: "Virality- Paid Users"
type: number
sql: 1.0 * (${Organic_User_count} + ${Growth_User_count} +${Referral_User_count}) / ${Marketing_User_count} ;;
}
measure: Round_count {
type: count_distinct
sql: ${TABLE}.RoundId ;;
}
}
entry_fees.view.lookml · 221 lines
source-preserved
- view: entry_fees
derived_table:
sql: SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions AS transactions
WHERE TransType=1
UNION ALL
SELECT
id
,UserId
,Amount
, CreatedAt
, UNIX_TIMESTAMP(DATE(CreatedAt)) AS created_date_unix
,TransType
,Currency
,RoundId
,WLSId
,LeagueId
,TourId
,UserAgent
FROM Transactions_Archive AS transactions_archive
WHERE TransType=1
fields:
- dimension: id
type: int
hidden: true
sql: ${TABLE}.id
- dimension: user_id
type: int
label: UserID
drill_fields:
- detail*
sql: ${TABLE}.UserId
- dimension: wlsid
type: number
hidden: true
sql: ${TABLE}.WLSId
- dimension: RoundId
type: int
sql: ${TABLE}.RoundId
- dimension: LeagueId
type: int
sql: ${TABLE}.LeagueId
- dimension: TourId
type: int
sql: ${TABLE}.TourId
- dimension: inr2usd
type: number
hidden: true
sql: case when ${TABLE}.WLSId NOT IN (2,6,9,12,28,29) THEN ${DailyCurrencyRate.conversion} else 1 END
- dimension: amount
type: number
label: Entry Fees in Rupees
value_format: '"₹"#,##0.00'
sql: ${TABLE}.Amount
- dimension: amount_segments
type: tier
value_format: '"₹"#,##0.00'
sql: ${amount}
- dimension: amount_usd
type: number
label: Entry Fees in USD
value_format: '$#,##0.00'
sql: (${TABLE}.Amount * ${inr2usd})
- dimension: country
type: string
label: Country (India Or US)
sql: Case when ${TABLE}.WLSId in (2,6,9,12,28,29) Then "US" else "India" End
- dimension: AEFPU_USD
type: number
label: Average Entry Fees Per User USD
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: ${Entry_Fees_USD}/${User_Count}
- dimension: Category
type: string
label: Category (Marketing/Organic/Growth/Referral)
sql: ${userstatus.category}
- dimension: New_Repeat_User_monthly
type: string
label: New Or Repeat User MonthWise
sql: case WHEN ${created_at_month} = ${userstatus.first_league_join_date_month} Then "New " Else "Repeat " End
- dimension: New_Repeat_User_weekly
type: string
label: New Or Repeat User WeekWise
sql: case WHEN ${created_at_week} = ${userstatus.first_league_join_date_week} Then "New " Else "Repeat " End
- dimension: New_Repeat_User_daily
type: string
label: New Or Repeat User Daily
sql: case WHEN ${created_at_date} = ${userstatus.first_league_join_date_date} Then "New " Else "Repeat " End
- dimension: New_Repeat_User_yearly
type: string
label: New Or Repeat User YearWise
sql: case WHEN ${created_at_year} = ${userstatus.first_league_join_date_year} Then "New " Else "Repeat " End
- dimension: AEFPU
type: number
label: Average Entry Fees Per User
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: ${Entry_Fees}/${User_Count}
- dimension: Is_Organic
type: yesno
hidden: true
sql: ${userstatus.category}="Organic"
- dimension: Is_Growth
type: yesno
hidden: true
sql: ${userstatus.category}="Growth"
- dimension: Is_Marketing
type: yesno
hidden: true
sql: ${userstatus.category}="Marketing"
- dimension: Active_Flag
type: string
label: Active or Deactivated
sql: CASE When ${userstatus.Status}= 1 THEN "Active " ELSE "Deactivated " END
- dimension: Device
type: string
label: Device (Mobile OR Desktop)
sql: ${userstatus.Device}
- dimension: Game
type: string
label: Game (Cricket/Football/Rugby)
sql: Case when ${TABLE}.WLSId in (1,2,5,6,7,8,13,15,16,17,18,19,20,21,22,23,24) Then "Cricket" when ${TABLE}.WLSId in (9,10,11,12,14,25,26) Then "Football" when ${TABLE}.WLSId in (27,28,29,30) Then "Rugby" End
- dimension: user_agent
type: string
label: Browser
sql: ${TABLE}.UserAgent
- dimension_group: created_at
type: time
timeframes:
- date
- week
- month
- year
- time
- raw
datatype: datetime
sql: ${TABLE}.CreatedAt
- dimension_group: created_date_unix
type: time
timeframes:
- date
- raw
datatype: epoch
sql: ${TABLE}.created_date_unix
- measure: Entry_Fees_Dollar
type: sum
label: Total Entry Fees In Dollar
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: (${amount} * ${inr2usd})
- measure: Entry_Fees
type: sum
label: Total Entry Fees In Rupees
value_format: '"₹"#,##0.00'
drill_fields:
- detail*
sql: ${amount}
- measure: Entry_Fees_USD
type: sum
label: Total Entry Fees In Rupees
value_format: '$#,##0.00'
drill_fields:
- detail*
sql: ${amount_usd}
- measure: User_Count
type: count_distinct
label: Total Paid Users
drill_fields:
- userstatus.userid
- userstatus.user_full_name
- userstatus.email_id
- userstatus.date_of_registration
sql: ${user_id}
- measure: league_join_count
type: count
label: Total League Joining Events
- measure: Organic_User_count
type: count_distinct
filters:
- userstatus.category: Organic
sql: ${user_id}
- measure: Referral_User_count
type: count_distinct
filters:
- userstatus.category: Referral
sql: ${user_id}
- measure: Growth_User_count
type: count_distinct
filters:
- userstatus.category: Growth
sql: ${user_id}
- measure: Marketing_User_count
type: count_distinct
filters:
- userstatus.category: Marketing
sql: ${user_id}
- measure: virality
type: number
label: Virality- Paid Users
sql: 1.0 * (${Organic_User_count} + ${Growth_User_count} +${Referral_User_count}) / ${Marketing_User_count}
- measure: Round_count
type: count_distinct
sql: ${TABLE}.RoundId
Contents
- entry_fees.sql
- entry_fees.sql
- entry_fees.view.lkml
- entry_fees.view.lookml