每天多个条目,转换为每日和每天的平均值

时间:2012-09-24 07:55:07

标签: sql

在SQL中,3个表连接在一起,后退了3个值:valuetimevalue_name。值是我想要按天平均的值,time是约10分钟的日期时间格式 - 这个我想要它每天转换,每天产生一行 - 我的value_name女巫是任何选定的值。

这是我的语法:

select time.entry_time, value_type.value_name, 
       avg(value.value) AVG_VALUE
FROM Value
inner join time on value.time_id = time.id
inner join value_type on value.type_id = value_type.id
WHERE value_type.value_name = 'CUSTOM'
GROUP BY DATEPART(DAY, time.entry_time)

我在这里收到错误:

  

time.entry_time在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

你能帮我解释一下这个语法吗?

1 个答案:

答案 0 :(得分:3)

两个问题:

  1. 您选择time.entry_time,但正在DATEPART(DAY, time.entry_time)进行分组。你想要哪个入学时间?您的意思是选择DATEPART(DAY, time.entry_time)吗?

  2. 您没有按value_type.value_name分组。您需要将其添加到GROUP BY子句中。 (是的,即使只有一个值'CUSTOM')。

  3. 尝试:

    select DATEPART(DAY, time.entry_time), value_type.value_name, 
           avg(value.value) AVG_VALUE
    FROM Value
    inner join time on value.time_id = time.id
    inner join value_type on value.type_id = value_type.id
    WHERE value_type.value_name = 'CUSTOM'
    GROUP BY DATEPART(DAY, time.entry_time), value_type.value_name