在sql

时间:2017-10-12 21:04:01

标签: group-by ssms distinct average

这有点令人费解,但我会尝试不这样做。下面是数据片段及其下方的预期结果。对于状态,区域,indcode和所有权的每种组合,我想计算平均值。我对SQL中AVG的了解将使整个列的平均值不仅仅是特定的值。

state   areatype   area   period   indcode   ownership    sites   employment
 32        05     000001     01    102800        12          25         256
 32        05     000001     01    102900        13           6          26
 32        05     000003     01    102800        12         774        1874
  .
  .   
 32        05     000001     02    102800        12          27         239
 32        05     000001     03    102800        12          28         241
 32        05     000001     04    102800        12          29         248

预期结果

 32        05     000001     00    102800        12          27         246

以下代码会这样做甚至关闭吗?

Select avg(employment, sites)
From Select (Distinct(state, area, indcode, ownership) from dbo.tablename;

1 个答案:

答案 0 :(得分:0)

 select
 [state], areatype, area, '00' [period], indcode, ownership, 
 avg(sites) sites, avg(employment) employment
 from dbo.tablename
 group by [state], areatype, area, indcode, ownership;

主要是通过反复试验和来自其他网站的帮助。不确定它为什么有效,但它足够接近。