我們有一個表格,用於收集連接到嵌入式計算機的傳感器的計數。我與下面的模式的表:在TSQL中聚合通用列
CREATE TABLE Demo (
PKColumn BIGINT
, FKColumn INT
, ...
, EventDateTime DATETIME
, Count1 INT
, Count2 INT
, Count3 INT
, Count4 INT
)
的問題是,對於FKColumn = 1淨計數將是(共1個記錄+共3個記錄) - (共2個記錄+ Count4)。但是對於FKColumn = 2,淨數將是(Count2 + Count4) - (Count1 + Count3)。數據從嵌入式計算機流入,根據計算機上傳感器的校準方式,我們可以根據每個計數的含義得出不同的定義。
幸運的是,一旦安裝了傳感器,它們永遠不會改變。
不幸的是,傳感器的安裝方式缺乏控制......因此存在問題。
由於每列的定義對於每個FKColumn值都不相同,因此建立我的聚合函數的最高性能方法是什麼?我正在考慮映射表來定義每個FKColumn的每個傳感器,但是當我構建該解決方案時,它看起來好像每個計算的查找花費太多。
數據庫在Azure中運行,因此沒有CLR功能。
有沒有其他人面臨這種情況?你是如何解決它的?
英雄所見略同 – cha
我喜歡,有什麼好笑的是我有一個類似昨晚睡覺時想。奇怪的是,當你不專注於解決方案時,解決方案會變得更容易。 – slowder
幸運的是,計數總是> = 0,沒有NULL! – slowder