簡體   English   中英

使用 count 1 獲取表行數

[英]Getting table rows count by using count 1

為了獲得適當的表行數,我想使用一種簡單的方法:使用count 1構造。 它適用於一個簡單的案例:

q)t:([]sym:`a`a`b`b);
q)select cnt: count 1 by sym from t
sym| cnt
---| ---
a  | 2
b  | 2

但是當我添加其他字段時,我得到了錯誤的結果:

q)select cnt: count 1, sym by sym from t
sym| cnt sym
---| -------
a  | 1   a a
b  | 1   b b

為什么count 1在一個列案例中起作用(或者看起來如此)並且在多個列中失敗?


更新:預計會得到這樣的東西

sym| cnt sym
---| -------
a  | 2   a a
b  | 2   b b

我認為count 1不會產生您正在尋找的結果,甚至不會產生一致的結果。

我想你可能想用count i代替。 by sym選擇時,您正在指定要計數的列。

q)t:([]sym:`a`a`b`b)
q)select cnt:count i,sym by sym from t
sym| cnt sym
---| -------
a  | 2   a a
b  | 2   b b
q).z.K
3.6

但是需要注意的一點是,此解決方案不適用於 kdb+ 4.0。

q)t:([]sym:`a`a`b`b)
q)select cnt:count i,sym by sym from t
'dup names for cols/groups sym
  [0]  select cnt:count i,sym by sym from t
                                    ^
q).z.K
4f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM