[英]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.