我将尝试使用此示例表解释我的问题:
我需要计算高值和低值的平均值来生成'mid'值,但前提是它不在表中。
分组是获得所有中间价值的良好开端。但是,如何避免覆盖现有的中间值?如何将所有其他数据包含在视图中?
答案 0 :(得分:0)
为什么不在下面?
select KeyType,Avg(Value) from mytable group by KeyType
答案 1 :(得分:0)
这是一个开始:
select Key_Name, Key_Date, Key_ID1, Key_Type, Value, Key_Module from T
union all /* all isn't strictly necessary though generally faster */
select
Key_Name, Key_Date, 'mid' as Key_Type,
min(Key_ID1) as Key_ID1 -- ??
avg(Value), -- (max(Value) - min(Value)) / 2.0
min(Key_Module) as Key_Module
from T
group by Key_Name, Key_Date
having count(case when KeyType = 'mid' then 1 end) = 0
使用Key_Module
和Key_ID1
列并不清楚您打算做什么。