diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 10c643b..49a1e5f 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -15,7 +15,7 @@ def index def jump_to_lesson chapter = params[:id] #Initialize session variables before we direct to that chapter - session[:maxsec] = Chapters.select(:maxlesson).where("id = #{chapter}").first.maxlesson + session[:maxsec] = Sqlcons.maximum(:sec, :conditions => "ch = #{chapter}")#.where("ch = #{chapter}") session[:maxch] = Chapters.maximum(:id) session[:tutch] = chapter.to_i session[:tutsec] = 0 diff --git a/app/controllers/sqlcons_controller.rb b/app/controllers/sqlcons_controller.rb index 8c45003..3f60311 100644 --- a/app/controllers/sqlcons_controller.rb +++ b/app/controllers/sqlcons_controller.rb @@ -6,13 +6,10 @@ class SqlconsController < ApplicationController # GET /sqlcons # GET /sqlcons.json def index - session[:maxsec] = Chapters.select(:maxlesson).where("id = 1").first.maxlesson + session[:maxsec] = Sqlcons.maximum(:sec).where("ch = 1") + #session[:maxsec] = Chapters.select(:maxlesson).where("id = 1").first.maxlesson session[:tutch] = 1 - session[:tutsec] = 1 - #respond_to do |format| - # format.html # index.html.erb - # format.json { render :json => @sqlcons } - # end + session[:tutsec] = 1 render :index end @@ -42,7 +39,8 @@ def fetchquery #Increments session parameters if user wants to advance lesson. def nextlesson - cur_sec_max = Chapters.select(:maxlesson).where(:id => session[:tutch]).first.maxlesson + cur_sec_max = Sqlcons.maximum(:sec, :conditions => "ch = " + session[:tutch].to_s) + #Chapters.select(:maxlesson).where(:id => session[:tutch]).first.maxlesson app_ch_max = Chapters.maximum("id") #If we haven't hit the last lesson in chapter, or last chapter of tutorial # increment lesson. Otherwise on to the next chapter diff --git a/app/views/sqlcons/tutorials/tut4-2.html b/app/views/sqlcons/tutorials/tut4-2.html new file mode 100644 index 0000000..9bbd331 --- /dev/null +++ b/app/views/sqlcons/tutorials/tut4-2.html @@ -0,0 +1,9 @@ +

Ch4-2 : Count (cont.)

+

+To further assist in data analysis, we can employ the group by clause. +

+This addition allows us to "group" aggregate function results together based on values in a column. +
select count(*) from students +
select count(*) from students where fname like 'S%' +
+

diff --git a/db/migrate/20120508230755_dropmaxlesson_from_chapters.rb b/db/migrate/20120508230755_dropmaxlesson_from_chapters.rb new file mode 100644 index 0000000..e64a780 --- /dev/null +++ b/db/migrate/20120508230755_dropmaxlesson_from_chapters.rb @@ -0,0 +1,8 @@ +class DropmaxlessonFromChapters < ActiveRecord::Migration + def up + remove_column :chapters, :maxlesson + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 37c5cdc..488b61b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,14 +11,13 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20120414223318) do +ActiveRecord::Schema.define(:version => 20120508230755) do create_table "chapters", :force => true do |t| t.string "title" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.string "description" - t.integer "maxlesson" end create_table "dbqs", :force => true do |t| diff --git a/db/seeds.rb b/db/seeds.rb index 397393c..9cef638 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -25,6 +25,10 @@ #Chapter 4 Sqlcons.create(ch: 4,sec: 1,regtext: '(select)(.*?)(count)'); +Sqlcons.create(ch: 4,sec: 2,regtext: '(select)(.*?)(group by)'); +Sqlcons.create(ch: 4,sec: 3,regtext: '(select)(.*?)(having)'); +Sqlcons.create(ch: 4,sec: 4,regtext: '(select)(.*?)(max|min)'); +Sqlcons.create(ch: 4,sec: 5,regtext: '(select)(.*?)(sum)'); #Chapter description for each chapter. Chapters.create( title:'Select' , description:'The most basic forms of querying a database', maxlesson:7);