SQL
Crowdfunding education
Student Counter
Student Counter model for crowdfunding education.
source-preserved
Blocks
student_counter.sql · 48 lines
inferred
-- models/student_counter.sql
{{ config(materialized='view') }}
SELECT
p.createduserid teacherid,
CASE WHEN p.gradetypeid IN (1,2) THEN 27 WHEN p.gradetypeid IN (3,4) THEN 70 ELSE 44 END AS class_size,
CASE
WHEN pwfs.fully_funded_date BETWEEN '2014-07-01' AND '2015-06-30' THEN '{% parameter fiscal_year_placeholder %}'
WHEN pwfs.fully_funded_date BETWEEN '2013-07-01' AND '2014-06-30' THEN 'FY14'
WHEN pwfs.fully_funded_date BETWEEN '2012-07-01' AND '2013-06-30' THEN 'FY13'
WHEN pwfs.fully_funded_date BETWEEN '2011-07-01' AND '2012-06-30' THEN 'FY12'
WHEN pwfs.fully_funded_date BETWEEN '2010-07-01' AND '2011-06-30' THEN 'FY11'
WHEN pwfs.fully_funded_date BETWEEN '2009-07-01' AND '2010-06-30' THEN 'FY10'
WHEN pwfs.fully_funded_date BETWEEN '2008-07-01' AND '2009-06-30' THEN 'FY09'
WHEN pwfs.fully_funded_date BETWEEN '2007-07-01' AND '2008-06-30' THEN 'FY08'
WHEN pwfs.fully_funded_date BETWEEN '2006-07-01' AND '2007-06-30' THEN 'FY07'
WHEN pwfs.fully_funded_date BETWEEN '2005-07-01' AND '2006-06-30' THEN 'FY06'
WHEN pwfs.fully_funded_date BETWEEN '2004-07-01' AND '2005-06-30' THEN 'FY05'
WHEN pwfs.fully_funded_date BETWEEN '2003-07-01' AND '2004-06-30' THEN 'FY04'
WHEN pwfs.fully_funded_date BETWEEN '2002-07-01' AND '2003-06-30' THEN 'FY03'
WHEN pwfs.fully_funded_date BETWEEN '2001-07-01' AND '2002-06-30' THEN 'FY02'
WHEN pwfs.fully_funded_date BETWEEN '2000-07-01' AND '2001-06-30' THEN 'FY01'
WHEN pwfs.fully_funded_date BETWEEN '1999-07-01' AND '2000-06-30' THEN 'FY00' END AS fiscal_year_funded
FROM proposal_data p
LEFT JOIN
(SELECT
proposalid,
MAX(datecreated) fully_funded_date
FROM proposalworkflowstatus
WHERE workflowstatusid = 10
GROUP BY 1
) AS pwfs ON pwfs.proposalid = p.proposalid
WHERE pwfs.fully_funded_date IS NOT NULL
GROUP BY 1,2,3
# models/schema.yml
version: 2
models:
- name: student_counter
columns:
- name: teacherid
tests:
- unique
- not_null
- name: class_size
- name: fiscal_year_funded
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.
student_counter.sql · 32 lines
source-preserved
validation: not checked
SELECT
p.createduserid teacherid,
CASE WHEN p.gradetypeid IN (1,2) THEN 27 WHEN p.gradetypeid IN (3,4) THEN 70 ELSE 44 END AS class_size,
CASE
WHEN pwfs.fully_funded_date BETWEEN '2014-07-01' AND '2015-06-30' THEN '{% parameter fiscal_year_placeholder %}'
WHEN pwfs.fully_funded_date BETWEEN '2013-07-01' AND '2014-06-30' THEN 'FY14'
WHEN pwfs.fully_funded_date BETWEEN '2012-07-01' AND '2013-06-30' THEN 'FY13'
WHEN pwfs.fully_funded_date BETWEEN '2011-07-01' AND '2012-06-30' THEN 'FY12'
WHEN pwfs.fully_funded_date BETWEEN '2010-07-01' AND '2011-06-30' THEN 'FY11'
WHEN pwfs.fully_funded_date BETWEEN '2009-07-01' AND '2010-06-30' THEN 'FY10'
WHEN pwfs.fully_funded_date BETWEEN '2008-07-01' AND '2009-06-30' THEN 'FY09'
WHEN pwfs.fully_funded_date BETWEEN '2007-07-01' AND '2008-06-30' THEN 'FY08'
WHEN pwfs.fully_funded_date BETWEEN '2006-07-01' AND '2007-06-30' THEN 'FY07'
WHEN pwfs.fully_funded_date BETWEEN '2005-07-01' AND '2006-06-30' THEN 'FY06'
WHEN pwfs.fully_funded_date BETWEEN '2004-07-01' AND '2005-06-30' THEN 'FY05'
WHEN pwfs.fully_funded_date BETWEEN '2003-07-01' AND '2004-06-30' THEN 'FY04'
WHEN pwfs.fully_funded_date BETWEEN '2002-07-01' AND '2003-06-30' THEN 'FY03'
WHEN pwfs.fully_funded_date BETWEEN '2001-07-01' AND '2002-06-30' THEN 'FY02'
WHEN pwfs.fully_funded_date BETWEEN '2000-07-01' AND '2001-06-30' THEN 'FY01'
WHEN pwfs.fully_funded_date BETWEEN '1999-07-01' AND '2000-06-30' THEN 'FY00' END AS fiscal_year_funded
FROM proposal_data p
LEFT JOIN
(SELECT
proposalid,
MAX(datecreated) fully_funded_date
FROM proposalworkflowstatus
WHERE workflowstatusid = 10
GROUP BY 1
) AS pwfs ON pwfs.proposalid = p.proposalid
WHERE pwfs.fully_funded_date IS NOT NULL
GROUP BY 1,2,3
student_counter.view.lkml · 59 lines
inferred
view: student_counter {
derived_table: {
sql: SELECT
p.createduserid teacherid,
CASE WHEN p.gradetypeid IN (1,2) THEN 27 WHEN p.gradetypeid IN (3,4) THEN 70 ELSE 44 END AS class_size,
CASE
WHEN pwfs.fully_funded_date BETWEEN '2014-07-01' AND '2015-06-30' THEN '{% parameter fiscal_year_placeholder %}'
WHEN pwfs.fully_funded_date BETWEEN '2013-07-01' AND '2014-06-30' THEN 'FY14'
WHEN pwfs.fully_funded_date BETWEEN '2012-07-01' AND '2013-06-30' THEN 'FY13'
WHEN pwfs.fully_funded_date BETWEEN '2011-07-01' AND '2012-06-30' THEN 'FY12'
WHEN pwfs.fully_funded_date BETWEEN '2010-07-01' AND '2011-06-30' THEN 'FY11'
WHEN pwfs.fully_funded_date BETWEEN '2009-07-01' AND '2010-06-30' THEN 'FY10'
WHEN pwfs.fully_funded_date BETWEEN '2008-07-01' AND '2009-06-30' THEN 'FY09'
WHEN pwfs.fully_funded_date BETWEEN '2007-07-01' AND '2008-06-30' THEN 'FY08'
WHEN pwfs.fully_funded_date BETWEEN '2006-07-01' AND '2007-06-30' THEN 'FY07'
WHEN pwfs.fully_funded_date BETWEEN '2005-07-01' AND '2006-06-30' THEN 'FY06'
WHEN pwfs.fully_funded_date BETWEEN '2004-07-01' AND '2005-06-30' THEN 'FY05'
WHEN pwfs.fully_funded_date BETWEEN '2003-07-01' AND '2004-06-30' THEN 'FY04'
WHEN pwfs.fully_funded_date BETWEEN '2002-07-01' AND '2003-06-30' THEN 'FY03'
WHEN pwfs.fully_funded_date BETWEEN '2001-07-01' AND '2002-06-30' THEN 'FY02'
WHEN pwfs.fully_funded_date BETWEEN '2000-07-01' AND '2001-06-30' THEN 'FY01'
WHEN pwfs.fully_funded_date BETWEEN '1999-07-01' AND '2000-06-30' THEN 'FY00' END AS fiscal_year_funded
FROM proposal_data p
LEFT JOIN
(SELECT
proposalid,
MAX(datecreated) fully_funded_date
FROM proposalworkflowstatus
WHERE workflowstatusid = 10
GROUP BY 1
) AS pwfs ON pwfs.proposalid = p.proposalid
WHERE pwfs.fully_funded_date IS NOT NULL
GROUP BY 1,2,3 ;;
}
dimension: teacherid {
label: "Teacher ID"
type: int
primary_key: yes
hidden: yes
}
dimension: class_size {
type: int
hidden: yes
}
dimension: fiscal_year_funded {
hidden: yes
}
measure: total_students_impacted_calculated {
label: "Total Students Impacted (Calculated)"
type: sum
hidden: yes
sql: ${class_size} ;;
}
}
student_counter.view.lookml · 49 lines
source-preserved
- view: student_counter
derived_table:
sql: SELECT
p.createduserid teacherid,
CASE WHEN p.gradetypeid IN (1,2) THEN 27 WHEN p.gradetypeid IN (3,4) THEN 70 ELSE 44 END AS class_size,
CASE
WHEN pwfs.fully_funded_date BETWEEN '2014-07-01' AND '2015-06-30' THEN '{% parameter fiscal_year_placeholder %}'
WHEN pwfs.fully_funded_date BETWEEN '2013-07-01' AND '2014-06-30' THEN 'FY14'
WHEN pwfs.fully_funded_date BETWEEN '2012-07-01' AND '2013-06-30' THEN 'FY13'
WHEN pwfs.fully_funded_date BETWEEN '2011-07-01' AND '2012-06-30' THEN 'FY12'
WHEN pwfs.fully_funded_date BETWEEN '2010-07-01' AND '2011-06-30' THEN 'FY11'
WHEN pwfs.fully_funded_date BETWEEN '2009-07-01' AND '2010-06-30' THEN 'FY10'
WHEN pwfs.fully_funded_date BETWEEN '2008-07-01' AND '2009-06-30' THEN 'FY09'
WHEN pwfs.fully_funded_date BETWEEN '2007-07-01' AND '2008-06-30' THEN 'FY08'
WHEN pwfs.fully_funded_date BETWEEN '2006-07-01' AND '2007-06-30' THEN 'FY07'
WHEN pwfs.fully_funded_date BETWEEN '2005-07-01' AND '2006-06-30' THEN 'FY06'
WHEN pwfs.fully_funded_date BETWEEN '2004-07-01' AND '2005-06-30' THEN 'FY05'
WHEN pwfs.fully_funded_date BETWEEN '2003-07-01' AND '2004-06-30' THEN 'FY04'
WHEN pwfs.fully_funded_date BETWEEN '2002-07-01' AND '2003-06-30' THEN 'FY03'
WHEN pwfs.fully_funded_date BETWEEN '2001-07-01' AND '2002-06-30' THEN 'FY02'
WHEN pwfs.fully_funded_date BETWEEN '2000-07-01' AND '2001-06-30' THEN 'FY01'
WHEN pwfs.fully_funded_date BETWEEN '1999-07-01' AND '2000-06-30' THEN 'FY00' END AS fiscal_year_funded
FROM proposal_data p
LEFT JOIN
(SELECT
proposalid,
MAX(datecreated) fully_funded_date
FROM proposalworkflowstatus
WHERE workflowstatusid = 10
GROUP BY 1
) AS pwfs ON pwfs.proposalid = p.proposalid
WHERE pwfs.fully_funded_date IS NOT NULL
GROUP BY 1,2,3
fields:
- dimension: teacherid
type: int
primary_key: true
hidden: true
label: Teacher ID
- dimension: class_size
type: int
hidden: true
- dimension: fiscal_year_funded
hidden: true
- measure: total_students_impacted_calculated
type: sum
label: Total Students Impacted (Calculated)
sql: ${class_size}
Contents
- student_counter.sql
- student_counter.sql
- student_counter.view.lkml
- student_counter.view.lookml