时间维表DIMTIME,内有字段:
字段名 类型 注释
TIMEID NUMBER(8) 主键 自动递增
YEAR NUMBER(4) 日期年份,例如2008
MONTH NUMBER(2) 日期月份,例如8
DAY NUMBER(2) 日期每日,例如8
DIMTIMENAME DATE 具体日期,例如:2008-8-8经度表DIMLONGITUDE,内有字段:
字段名 类型 注释
LON_ID NUMBER(10) 主键 自动递增
DEGREE_SQAREA1D NUMBER(3) 一个经度里的度数
MINUTE_SQAREA5M NUMBER(2) 一个经度的分转化为5分的值,此分数是计算获得的,详细见下面计算公式例如109.102800度,则DEGREE_SQAREA1D的值为109,MINUTE_SQAREA5M的计算公式为:
先把小数点右面的度数转化为分数:0.102800*60 = 6.168分
转为为5分为:6.168/5 取整数为1 即MINUTE_SQAREA5M值为1纬度表DIMLATITUDE,内有字段:
字段名 类型 注释
LAT_ID NUMBER(10) 主键 自动递增
DEGREE_SQAREA1D NUMBER(3) 一个纬度里的度数
MINUTE_SQAREA5M NUMBER(2) 一个纬度的分转化为5分的值,此值计算公式同经度表里相同温度表Temp_01,内有字段:
字段名 类型 注释
ID NUMBER(18) 主键 自动递增
LON NUMBER(10,6) 纬度值,例如24.078000度
LAT NUMBER(10,6) 经度值,例如-37.083200度
VAL NUMBER(18,6) 温度值
DT DATE 具体日期,例如2004-7-6所求的统计表Statistics,内有字段:
字段名 注释
ID 主键,自动递增
STAT_DT_ID 温度表Temp_01里DT的值转化到逐年逐月的值,例如2004-7-6\2004-7-7\2004-7-8的STAT_DT均等于2004-7
LOG_ID 经度表DIMLONGITUDE里的按5分递增的值
LAT_ID 纬度表DIMLONGITUDE里的按5分递增的值
MAX 温度表Temp_01表里VAL最大值
MIN 温度表Temp_01表里VAL最小值
COUNT 温度表Temp_01表里VAL的个数说明:
统计表Statistics是由STAT_DT_ID\LOG_ID\LAT_ID共同决定的,COUNT为符合STAT_DT_ID\LOG_ID\LAT_ID的个数
MAX MIN COUNT均是针对温度表Temp_01表里VAL统计出来的
现统计LOG_ID为80度按5分递加到85度,LAT_ID为35度按5分递加到40度,所有日期的值,格式如下:
ID STAT_DT_ID LOG_ID LAT_ID MAX MIN COUNT
1 2006.5 80 37 11.447180 -3.280200 5
2 2006.5 80.5(80度5分) 37.5 20.516080 -1.806790 6
.
.
.
554 2006.6 80 37 20.465100 -9.031500 7
555 2006.6 80.5(80度5分) 37.5 178.921900 19.860640 3
.
.
.
1500 大体思路如下:
1:Temp_01里DT值转化为Statistics里的STAT_DT_ID值
2:DIMLONGITUDE与DIMLONGITUDE里的DEGREE_SQAREA1D值与MINUTE_SQAREA5M值转化为Statistics里的LOG_ID与LAT_ID
3:根据STAT_DT_ID\LOG_ID\LAT_ID求出Temp_01表里VAL值的最大值,最小值和个数
字段名 类型 注释
TIMEID NUMBER(8) 主键 自动递增
YEAR NUMBER(4) 日期年份,例如2008
MONTH NUMBER(2) 日期月份,例如8
DAY NUMBER(2) 日期每日,例如8
DIMTIMENAME DATE 具体日期,例如:2008-8-8经度表DIMLONGITUDE,内有字段:
字段名 类型 注释
LON_ID NUMBER(10) 主键 自动递增
DEGREE_SQAREA1D NUMBER(3) 一个经度里的度数
MINUTE_SQAREA5M NUMBER(2) 一个经度的分转化为5分的值,此分数是计算获得的,详细见下面计算公式例如109.102800度,则DEGREE_SQAREA1D的值为109,MINUTE_SQAREA5M的计算公式为:
先把小数点右面的度数转化为分数:0.102800*60 = 6.168分
转为为5分为:6.168/5 取整数为1 即MINUTE_SQAREA5M值为1纬度表DIMLATITUDE,内有字段:
字段名 类型 注释
LAT_ID NUMBER(10) 主键 自动递增
DEGREE_SQAREA1D NUMBER(3) 一个纬度里的度数
MINUTE_SQAREA5M NUMBER(2) 一个纬度的分转化为5分的值,此值计算公式同经度表里相同温度表Temp_01,内有字段:
字段名 类型 注释
ID NUMBER(18) 主键 自动递增
LON NUMBER(10,6) 纬度值,例如24.078000度
LAT NUMBER(10,6) 经度值,例如-37.083200度
VAL NUMBER(18,6) 温度值
DT DATE 具体日期,例如2004-7-6所求的统计表Statistics,内有字段:
字段名 注释
ID 主键,自动递增
STAT_DT_ID 温度表Temp_01里DT的值转化到逐年逐月的值,例如2004-7-6\2004-7-7\2004-7-8的STAT_DT均等于2004-7
LOG_ID 经度表DIMLONGITUDE里的按5分递增的值
LAT_ID 纬度表DIMLONGITUDE里的按5分递增的值
MAX 温度表Temp_01表里VAL最大值
MIN 温度表Temp_01表里VAL最小值
COUNT 温度表Temp_01表里VAL的个数说明:
统计表Statistics是由STAT_DT_ID\LOG_ID\LAT_ID共同决定的,COUNT为符合STAT_DT_ID\LOG_ID\LAT_ID的个数
MAX MIN COUNT均是针对温度表Temp_01表里VAL统计出来的
现统计LOG_ID为80度按5分递加到85度,LAT_ID为35度按5分递加到40度,所有日期的值,格式如下:
ID STAT_DT_ID LOG_ID LAT_ID MAX MIN COUNT
1 2006.5 80 37 11.447180 -3.280200 5
2 2006.5 80.5(80度5分) 37.5 20.516080 -1.806790 6
.
.
.
554 2006.6 80 37 20.465100 -9.031500 7
555 2006.6 80.5(80度5分) 37.5 178.921900 19.860640 3
.
.
.
1500 大体思路如下:
1:Temp_01里DT值转化为Statistics里的STAT_DT_ID值
2:DIMLONGITUDE与DIMLONGITUDE里的DEGREE_SQAREA1D值与MINUTE_SQAREA5M值转化为Statistics里的LOG_ID与LAT_ID
3:根据STAT_DT_ID\LOG_ID\LAT_ID求出Temp_01表里VAL值的最大值,最小值和个数
解决方案 »
- 【求教】TreeView从数据库提取数据
- html 控件刷新保存值
- DataList弹出窗体并传值怎样实现????????????
- 表有一个int字段,可能为空或者有值,如何判断该表中的字段为空或有数值?程序如何写。C#。
- 关于mysql数据库的图片存取?
- 泛域名解析IE地址栏中的长路径处理方法,100分赠送!
- asp.net(c#)如何实现将两个table的数据分别导出到同一个excel文件的不同sheet里面?
- 文本框的TextMode设置成Password后出现的奇怪问题
- 求datatable中 这种合并行的方法
- 网站发布到空间报错
- 关于网站搜索的问题
- ASP.NET中关于dropdownlist的问题
给个sql脚本或是结果要求,可能方便些。
在这里DIMTIME表没多大用处补充一点:
Temp_01里DT值转化为Statistics里的STAT_DT_ID值,即为:是把DT值分别取出年和月,然后到DIMTIME表里查询YEAR和MONTH,
然后由YEAR和MONTH组合而成的
貌似绕了一个大圈子
lat.minute_sqarea2m as 经度,
max(b.st_ave),
min(b.ST_MIN),
sum(b.ST_COUNT),
sum(b.st_ave * b.st_count) / (sum(b.st_count)),
trunc(STDDEV(t.FACTOR_VALUE), 6),
a.year || '-' || a.month
from dimtime a,
f_6_8_2_1 b,
dimlongitude lon,
dimlatitude lat,
f_6_8_2_1_d t
where b.dimtime = a.date1
and lon.minute_sqarea1m = b.dimlon
and lat.minute_sqarea1m = b.dimlat
and b.id = t.f_id
group by a.year || '-' || a.month, lon.minute_sqarea2m, lat.minute_sqarea2m
order by a.year || '-' || a.month, lon.minute_sqarea2m, lat.minute_sqarea2m
结贴了