cancel
Showing results for 
Search instead for 
Did you mean: 

how to read this two symbols

chan_chenyanj
New Contributor II

suppose i have a table with filed1 is list of symbol `1m`3m and filed2 is source `bbg`bbg

 

then how should i read

 

1. #[;1b] each count each field2 from table

2. {x 1 0} each filed1 from table

1 ACCEPTED SOLUTION

SJT
Valued Contributor
Valued Contributor
  1. count each field2 implies each item of field2 is a list – its length to be counted
  2. Similarly, the lambda {x 1 0} specifies the second and first items of a list, implying field1 is also nested

 

q)show t:([]field1:(2+5?3)?\:`$string[til 10],'"m";field2:(1+5?5)?\:5?`3)
field1    field2
------------------------------
`9m`1m    `dmp`gce`gdp
`4m`3m`9m `gce`dmp`dmp`nmo`gdp
`8m`9m    ,`icg
`9m`5m`4m `icg`gce`nmo`nmo`gce
`0m`4m`3m `dmp`icg`icg`gce

q)select {x 1 0}each field1, #[;1b] each count each field2 from t
field1 field2
-------------
1m 9m  111b
3m 4m  11111b
9m 8m  ,1b
5m 9m  11111b
4m 0m  1111b

 

Above:

  1. the second and first items from each list in field1
  2. a boolean true for each symbol in the field2 lists

Alternative expression:

 

q)select reverse each 2#'field1, not null field2 from t
field1 field2
-------------
1m 9m  111b
3m 4m  11111b
9m 8m  ,1b
5m 9m  11111b
4m 0m  1111b

 

View solution in original post

3 REPLIES 3

SJT
Valued Contributor
Valued Contributor
  1. count each field2 implies each item of field2 is a list – its length to be counted
  2. Similarly, the lambda {x 1 0} specifies the second and first items of a list, implying field1 is also nested

 

q)show t:([]field1:(2+5?3)?\:`$string[til 10],'"m";field2:(1+5?5)?\:5?`3)
field1    field2
------------------------------
`9m`1m    `dmp`gce`gdp
`4m`3m`9m `gce`dmp`dmp`nmo`gdp
`8m`9m    ,`icg
`9m`5m`4m `icg`gce`nmo`nmo`gce
`0m`4m`3m `dmp`icg`icg`gce

q)select {x 1 0}each field1, #[;1b] each count each field2 from t
field1 field2
-------------
1m 9m  111b
3m 4m  11111b
9m 8m  ,1b
5m 9m  11111b
4m 0m  1111b

 

Above:

  1. the second and first items from each list in field1
  2. a boolean true for each symbol in the field2 lists

Alternative expression:

 

q)select reverse each 2#'field1, not null field2 from t
field1 field2
-------------
1m 9m  111b
3m 4m  11111b
9m 8m  ,1b
5m 9m  11111b
4m 0m  1111b

 

chan_chenyanj
New Contributor II

thanks for the reply what does #[;1b] mean 

It is a projection on take

q)1#1b
,1b
q)2#1b
11b
q)#[;1b] 1
,1b
q)#[;1b] 2
11b