SQL select,sum和group

时间:2016-06-22 17:41:43

标签: sql

我正在努力使用Access数据库: 我有一个大型数据库,标题为TAG,ZST,KL和R1H00到R1H23(其中24个,每个代表一天一小时),我需要从中获取一个特定的数据集:

SELECT TAG, ZST, (R1H00 + R1H01 + R1H02 + R1H03 + R1H04 + R1H05 + R1H06 + R1H07 + R1H08 + R1H09 + R1H10 + R1H11 + R1H12 + R1H13 + R1H14 + R1H15 + R1H16 + R1H17 + R1H18 + R1H19 + R1H20 + R1H21 + R1H22 + R1H23) AS TOTAL
FROM Klassendaten
WHERE KL = "SWISS7_PW"

到目前为止一切顺利,但结果包含许多具有相同ID(ZST)的项目。我需要使用相同的ZST对所有条目求和,但到目前为止我无法做到这一点。 (我尝试使用GROUP BY语句,但这只会导致错误)

这里有经验丰富的SQL人员可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

使用分组

def up        
    Foo.find_each do |a|
      a.mystery_id = 1
      a.save!
    end

    Foo.all.each do |a|
      foo = foo.new(
        :name => a.name,
        :name => a.description,
        :mystery_id => 2
      )
      reminderEvent.save!
    end
  end

  def down

    TODO: somehow remove half all with mystery_id = 2
  end

答案 1 :(得分:0)

使用Sum()函数

SELECT TAG, ZST, Sum(R1H00 + R1H01 + R1H02 + R1H03 + R1H04 + R1H05 + R1H06 + R1H07 + R1H08 + R1H09 + R1H10 + R1H11 + R1H12 + R1H13 + R1H14 + R1H15 + R1H16 + R1H17 + R1H18 + R1H19 + R1H20 + R1H21 + R1H22 + R1H23) AS TOTAL

FROM Klassendaten 
where ZST = '(Whatever it is)'
group by tag, zst