嵌套分组依据(SQL),保留分组值

嵌套分组依据(SQL),保留分组值,sql,group-by,Sql,Group By,我的数据结构如下: date hour station dem imp 2/1/2016 1 station1 dem1 6 2/1/2016 2 station1 dem1 1 2/1/2016 1 station1 dem2 0 2/1/2016 2 station1 dem2 10 2/2/2016 1 station1 dem1 6 2/2/2016

我的数据结构如下:

date    hour    station     dem     imp
2/1/2016     1  station1    dem1    6
2/1/2016     2  station1    dem1    1
2/1/2016     1  station1    dem2    0
2/1/2016     2  station1    dem2    10
2/2/2016     1  station1    dem1    6
2/2/2016     2  station1    dem1    4
2/2/2016     1  station1    dem2    5
2/2/2016     2  station1    dem2    5
2/1/2016     1  station 2   dem1    8
2/1/2016     2  station 2   dem1    1
2/1/2016     1  station 2   dem2    7
2/1/2016     2  station 2   dem2    1
2/2/2016     1  station 2   dem1    8
2/2/2016     2  station 2   dem1    7
2/2/2016     1  station 2   dem2    9
2/2/2016     2  station 2   dem2    0
我希望它看起来像下面这样:

Imp的计算方法是:每小时DEM的总和,然后是每天小时的平均值

date         station    imp
2/1/2016     station1   8.5
2/1/2016     station2   8.5
2/2/2016     station1   10.0
2/2/2016     station2   12.0
例如,获得2016年2月1日和station1;imp=((6+0)+(10+1))/2


我遇到的问题是,在对
dem
hour
date

执行
GROUP BY
操作时,我不确定如何保留桩号值。您可以将总和除以
count(distinct dem)
,它具有每个日期/桩号对的唯一dem

select date, station, sum(imp) / count(distinct dem)
from mytable
group by date, station

太好了,谢谢!因为我是初学者,你能解释一下有两列的分组是如何工作的吗?从概念上讲,我很难想象。基本上是将每个唯一的日期/站点对计算出来,然后应用您编写的平均公式吗?@mburke05是的,基本上是这样的,
count(distinct dem)
只计算组(2)中唯一的dem,而不是
count(dem)
将它们全部计算出来(4)