Qlikview集合分析

2022-09-13 13:48:12 字數 4796 閱讀 2922

集合可用於聚合函式。聚合函式一般用於聚合當前選擇範圍定義的可能記錄的集合。但替代記錄集合可由集合表示式定義。因此,集合在概念上與選擇範圍類似。

在使用中,集合表示式時總是以波形括號開始和結束,例如:。

可以用乙個常數表示記錄集 1。記錄集表示應用程式中所有記錄的完全集合。

符號 $ 代表當前選擇項範圍內的記錄。因此,陳述集合表示式  與不陳述集合表示式的意義等同。更有趣的是,定義了當前選擇項的反置,即指未包括在當前選擇項中的所有資料。

後退/前進堆疊中的選擇項可用作集合識別符號。比如,可用貨幣符號:$1 代表先前選擇項,其等同於單擊後退按鈕。同樣,$_1 則代表前進一步,其等同於單擊前進按鈕。任何無標記的整數都可用於表示後退和前進動作,如 $0 代表當前選擇項。

最後,書籤也可用作集合識別符號。注意,只有伺服器和文件書籤才能作為識別符號使用。書籤 id 或書籤名稱都可以使用,如 bm01 或 mybookmark。僅選擇的書籤部分可用。不包括值。因此,就不可能為集合分析在書籤中使用輸入字段。

示例:sum(  sales )

其可返回當前選擇項的銷售額, 即如同 sum(sales)。

sum(  sales )

其可返回之前選擇的銷售額。

sum(  sales )

其返回下兩個選擇的銷售額,即前進兩步。如果執行兩次後退操作才會用到。

sum(  sales )

其返回應用程式中的總銷售額,忽略選擇項而不是維度。例如,如果在圖表中使用產品作維度,則每樣產品將得到乙個不同的值。

sum(  total sales )

其返回應用程式中的總銷售額,忽略選擇項和維度。即如同 sum(all sales)。

sum(  sales )

其可返回書籤 bm01 的銷售額。

sum(  sales )

其可返回書籤 mybookmark 的銷售額。

sum( sales)

其可返回伺服器書籤 bm01 的銷售額。

sum( sales)

其可返回文件書籤 mybookmark 的銷售額。

一些集合運算子可以在既存的集合表示式中使用。如上所述,所有集合運算子將集合作為運算元並返回集合形式的結果。

+ 並集運算子。此二元運算返回兩個集合運算元中所有記錄構成的集合。

- 排除。此二元運算返回由屬於第乙個集合運算元但不屬於另乙個集合運算元的記錄構成的集合。如用於一元運算,則結果是補集。

* 交集運算子。此二元運算返回兩個集合運算元共有記錄構成的集合。

/ 對稱差集(異或運算)運算子。此二元運算返回包含於兩個集合運算元中但不為它們所共有的記錄構成的集合。

運算子優先順序是: 1)一元負運算子(補集),2)交集和對稱差集運算子,3)並集和排除運算子。在同一組內,從左至右判斷表示式。非優先順序順序可由標準括號確定,由於集合運算子不可交換順序,所以括號可能很有必要,例如,a + (b – c) 與 (a + b) – c 不同,反過來與 (a – c) + b 也不同。

示例:sum(  sales )

其可返回除當前選擇項以外的所有銷售額。

sum(  sales )

其可返回包括在當前選擇項與書籤 bm01 中的銷售額的交集。

sum(  sales )

其可返回未包括在當前選擇項與書籤 bm01 中的銷售額。

注意!當集合運算子與包括多個qlikview **欄位的基本聚合表示式同時使用時,可能造成不可預知的後果,應避免此種情況。例如,如果數量和**兩個字段來自不同**,那麼應避免使用表示式sum(quantity*price).

通過新增或更換選擇項可修改集合。此類修改可寫入集合表示式。集合修飾符包括乙個或幾個欄位名稱,每個欄位後均有屬於此欄位範疇的選擇項,所有選擇由< 和 > 括起來。例如: 。欄位名稱和字段值可以照常引用,例如:<[sales region]=>。

以下有幾種定義選擇範圍的方法:一種簡單的做法是根據其他欄位已選值定義選擇範圍,例如:。修飾符將獲得源於deliverydate的已選值,並將其作為選擇項應用於orderdate。如果字段包括很多不同特殊值(數百個),則該操作是 cpu 密集型的,應避免此操作。

然而,最常用的選擇範圍是將字段值擴於波浪括號內,各值由逗號分隔,如下所示:。波浪括號中定義的是元素集,所含元素可以是字段值或字段值搜尋。搜尋通常由雙引號定義,例如: ,其表示將選擇包括字串『garlic』的所有原料。搜尋不區分大小寫,並且會在不包含的值上進行。

空白元素集,明顯的例子如 ,不明顯的例子如 (未搜尋到匹配記錄),這些均表示沒有產品,即其得到的記錄集不與任何產品相關。注意:設定不能通過普通選擇建立,除非在其他欄位中選擇,例如:transactionid。

最後,對於字段輸入模式,仍有可能需要強制排除。如果要強制排除特定字段值,需要在欄位名稱前加「~」。

集合修飾符可用於集合識別符號中,也可單獨使用。它不能用於集合表示式。當用於集合識別符號中時,應在集合識別符號後立即寫出修飾符,例如,。單獨使用時,就等於修改當前選擇範圍。

示例:sum(  sales )

其返回 us 區域的銷售額,忽略當前選擇項。

sum(  sales )

其返回當前選擇項的銷售額,但是移除「區域」選擇。

sum( {} sales )

返回與上一例相同的銷售額。當省略設定修改時,則假設 $。

注意!上兩例的語法被解釋為在「區域」中「沒有選擇項」,即所有區域可以給定其他選擇。它不等同於解釋為沒有區域的語法 (或在等號右側的任意文字預設得出空白元素集)。

sum(  sales )

其返回當前選擇項的銷售額,但在「region」中有「year」 的新選擇。

sum( >} sales )

其返回當前選擇項的銷售額,但強制排除所有包含『garlic』字串的原料。

sum(  sales )

其返回當前選擇項的銷售額,但應在字段「year」中選擇所有以數字「2」開頭的年份,例如:2000 及其之後年份。

sum(  sales )

如同上例,但包括 1980 年。

sum( >} sales )

如同上例,但包含數值搜尋,以便指定任意範圍。

如上所述,欄位中的選擇可以使用集合運算子定義並可在不同元素集中工作。例如:修飾符 表示除「1997」年外,還將選擇以「20」開頭的年份,同時不包括「2000」。

示例:sum(  sales)

其返回當前選擇項的銷售額,但要新增「ourproduct1」 至選中產品列表中並從產品列表中移除「ourproduct2」。

sum(  sales )

其返回當前選擇項與字段「year」中額外選擇項的銷售額,即:1997 和 所有以「20」開頭的年份,但是不包括 2000。注意:如果當前選擇項中包含 2000,它也將在修改後被包括進來。

sum(  sales )

其返回與上例相同的銷售額,即使初始時當前選擇項中包括 2000,它也將被排除在外。該例顯示的是使用括號定義優先順序的重要性。

sum(  sales )

其返回當前選擇項的銷售額,但在「year」中選擇除 2000 年之外的所有年份;並僅指包含字串『bearing』的產品。

以上表示法定義了新的選擇範圍,忽略了字段的當前選擇範圍。然而,如果想在字段內的當前選擇範圍的基礎上新增新字段值。例如,此時可能需要這樣的修飾符 。乙個簡短而等義的寫法是 ,即以賦值運算子預設定義並集。同樣,交集、補集和對稱差集可由賦值運算子預設定義為 「*=」, 「–=」 and 「/=」。

示例:sum(  sales )

其返回當前選擇項的銷售額,但使用使用預設並集新增產品「ourproduct1」和「ourproduct2」至選中產品列表。

sum(  sales )

其返回當前選擇項的銷售額,但使用使用預設並集新增在選擇中新增:1997 和 所有以「20」開頭的年份,但是不包括 2000。注意:如果當前選擇項中包含 2000,它也將在修改後被包括進來。如同

sum(  sales )

其返回當前選擇項的銷售額,但僅為當前選中產品與「ourproduct1」產品的交集。

變數和其他貨幣符號表示式可以在集合表示式中使用。

示例:使用萬用字元和聚合的高階搜尋可以用於定義集合。

示例:sum(  sales )

其返回當前選擇項的銷售額,排除產品名中包含『internal』或『domestic』的產品的交易。

sum(  sales ) > 1000000」}>} sales )

其返回當前選擇項的銷售額,但在字段 「customer」 中有新選擇:僅選擇在 2007 年中總銷售額超過 1000000 的客戶。

在上述示例中,所有字段值均已明確定義或通過搜尋定義。但是,還可使用巢狀集合定義定義字段值集合。

在這種情況下,必須使用 element 函式 p() 和 e() ,分別呈現正值的元素集和字段排除值。在括號內,可以指定乙個集合表示式和乙個字段,如 p( customer)。這些函式不能在其他表示式中使用:

示例:sum(  customer)>} sales )

其返回當前選擇項的銷售額,但僅限於購買過『shoe』的客戶。element 函式 p( ) 可返回可能客戶列表,即通過選擇產品欄位內的「a」暗指的客戶列表。

sum( )>} sales )

結果如上。如果省略 element 函式中的字段,該函式將返回外部任務中指定欄位的正值。

sum(  supplier)>} sales )

其返回當前選擇項的銷售額,但僅限於提供過『shoe』的**商。element 函式 p( ) 可返回可能**商列表,即通過選擇產品欄位內的「shoe」暗指的客戶列表。**商列表隨後被當作選擇在字段 customer 中使用。

sum( )>} sales )

其返回當前選擇項的銷售額,但僅限於沒有購買過『shoe』的客戶。element 函式 e( ) 可返回排除的客戶列表,即通過選擇產品欄位內的「shoe」排除的客戶列表。

QLIKVIEW的商業智慧型

學了三個月的qlikview,總體感覺,對乙個玩了4年oracle,sql server的我來說,像是在用excle。它的快,一是來自他對不合格資料的忽略 其他資料倉儲都需要經過抽取和清洗,轉換最後載入,建模,展現 而這款工具,直接可以裝載資料,不需要任何etl 二是記憶體式的儲存,壓縮,乙個欄位中...

錯誤分析集合

1 the method find and modity text view from the type textactivity is never used locally 需要在oncreate 中宣告 2 出現程式強制關閉,可能是由於沒有宣告activity 3 如果按鈕出現在本地不可能呼叫的...

Qlikview 處理增量資料的指令碼

一般設計qlikview報表的時候需要些2個指令碼檔案,乙個針對qlikview的server job 匯出資料到qvd資料文具。另乙個使用者訪問的qlikview的指令碼是直接展示qvd檔案的資料。事實上我們一共需要2個qvw檔案,設定2個jobschedule,乙個是loadingdata,儲存...