SQL Saas recruitment

Feature Usage

Feature Usage model for saas recruitment.

source-preserved

Blocks

feature_usage.sql · 20 lines
inferred
{{ config(materialized='view') }}

SELECT
jobactivity.start_time::date as start_date,
jobactivity.end_time::date as end_date,
account.accountname_text AS company_name,
bool_or(applicant.commented_flag) AS used_comments,
bool_or(applicant.rating_number is not null) AS used_ratings,
bool_or(applicant.stage_text <> 'new') AS used_stages
FROM applicantfact AS applicant
JOIN employer ON applicant.employer_id = employer.employer_id
  and companyname_text not ilike '<% parameter company_name_2 %>'
  and companyname_text not ilike '<% parameter company_name_1 %>'
JOIN job_reporting AS job ON applicant.job_id = job.job_id
JOIN jobactivity ON applicant.jobactivity_id = jobactivity.jobactivity_id
LEFT JOIN contact_reporting AS contact ON employer.external_contact_id = contact.external_contact_id
LEFT JOIN account_reporting AS account ON contact.external_account_id = {{ this }}.external_account_id
WHERE applicant.fittype_id = 1 and job.jobtype_text <> 'SampleJob' and not employer.istest_flag
GROUP BY 1,2,3
ORDER BY 1 DESC

Assumptions

  • materialized='view' is the default; no persist hint found.
feature_usage.sql · 18 lines
source-preserved validation: not checked
SELECT
jobactivity.start_time::date as start_date,
jobactivity.end_time::date as end_date,
account.accountname_text AS company_name,
bool_or(applicant.commented_flag) AS used_comments,
bool_or(applicant.rating_number is not null) AS used_ratings,
bool_or(applicant.stage_text <> 'new') AS used_stages
FROM applicantfact AS applicant
JOIN employer ON applicant.employer_id = employer.employer_id
  and companyname_text not ilike '<% parameter company_name_2 %>'
  and companyname_text not ilike '<% parameter company_name_1 %>'
JOIN job_reporting AS job ON applicant.job_id = job.job_id
JOIN jobactivity ON applicant.jobactivity_id = jobactivity.jobactivity_id
LEFT JOIN contact_reporting AS contact ON employer.external_contact_id = contact.external_contact_id
LEFT JOIN account_reporting AS account ON contact.external_account_id = ${TABLE}.external_account_id
WHERE applicant.fittype_id = 1 and job.jobtype_text <> 'SampleJob' and not employer.istest_flag
GROUP BY 1,2,3
ORDER BY 1 DESC
feature_usage.view.lkml · 59 lines
inferred
view: feature_usage {
  derived_table: {
    sql: SELECT
jobactivity.start_time::date as start_date,
jobactivity.end_time::date as end_date,
account.accountname_text AS company_name,
bool_or(applicant.commented_flag) AS used_comments,
bool_or(applicant.rating_number is not null) AS used_ratings,
bool_or(applicant.stage_text <> 'new') AS used_stages
FROM applicantfact AS applicant
JOIN employer ON applicant.employer_id = employer.employer_id
  and companyname_text not ilike '<% parameter company_name_2 %>'
  and companyname_text not ilike '<% parameter company_name_1 %>'
JOIN job_reporting AS job ON applicant.job_id = job.job_id
JOIN jobactivity ON applicant.jobactivity_id = jobactivity.jobactivity_id
LEFT JOIN contact_reporting AS contact ON employer.external_contact_id = contact.external_contact_id
LEFT JOIN account_reporting AS account ON contact.external_account_id = ${TABLE}.external_account_id
WHERE applicant.fittype_id = 1 and job.jobtype_text <> 'SampleJob' and not employer.istest_flag
GROUP BY 1,2,3
ORDER BY 1 DESC ;;
  }

  dimension_group: end {
    type: time
    timeframes: [date, week, month]
    datatype: date
    sql: ${TABLE}.end_date ;;
  }

  dimension_group: start {
    type: time
    timeframes: [date, week, month]
    datatype: date
    sql: ${TABLE}.start_date ;;
  }

  measure: users {
    type: count_distinct
    sql: ${TABLE}.company_name ;;
  }

  measure: used_comments_rate {
    type: number
    value_format: "#.00%"
    sql: ${used_comments}::float / nullif(${users}::float,0) ;;
  }

  measure: used_stages_rate {
    type: number
    value_format: "#.00%"
    sql: ${used_stages}::float / nullif(${users}::float,0) ;;
  }

  measure: used_ratings_rate {
    type: number
    value_format: "#.00%"
    sql: ${used_ratings}::float / nullif(${users}::float,0) ;;
  }
}
feature_usage.view.lookml · 52 lines
source-preserved
- view: feature_usage
  derived_table:
    sql: SELECT
jobactivity.start_time::date as start_date,
jobactivity.end_time::date as end_date,
account.accountname_text AS company_name,
bool_or(applicant.commented_flag) AS used_comments,
bool_or(applicant.rating_number is not null) AS used_ratings,
bool_or(applicant.stage_text <> 'new') AS used_stages
FROM applicantfact AS applicant
JOIN employer ON applicant.employer_id = employer.employer_id
  and companyname_text not ilike '<% parameter company_name_2 %>'
  and companyname_text not ilike '<% parameter company_name_1 %>'
JOIN job_reporting AS job ON applicant.job_id = job.job_id
JOIN jobactivity ON applicant.jobactivity_id = jobactivity.jobactivity_id
LEFT JOIN contact_reporting AS contact ON employer.external_contact_id = contact.external_contact_id
LEFT JOIN account_reporting AS account ON contact.external_account_id = ${TABLE}.external_account_id
WHERE applicant.fittype_id = 1 and job.jobtype_text <> 'SampleJob' and not employer.istest_flag
GROUP BY 1,2,3
ORDER BY 1 DESC
  fields:
  - dimension_group: end
    type: time
    timeframes:
    - date
    - week
    - month
    datatype: date
    sql: ${TABLE}.end_date
  - dimension_group: start
    type: time
    timeframes:
    - date
    - week
    - month
    datatype: date
    sql: ${TABLE}.start_date
  - measure: users
    type: count_distinct
    sql: ${TABLE}.company_name
  - measure: used_comments_rate
    type: number
    value_format: '#.00%'
    sql: ${used_comments}::float / nullif(${users}::float,0)
  - measure: used_stages_rate
    type: number
    value_format: '#.00%'
    sql: ${used_stages}::float / nullif(${users}::float,0)
  - measure: used_ratings_rate
    type: number
    value_format: '#.00%'
    sql: ${used_ratings}::float / nullif(${users}::float,0)

Contents

  • feature_usage.sql
  • feature_usage.sql
  • feature_usage.view.lkml
  • feature_usage.view.lookml