KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums kdb+ how to read this two symbols

  • how to read this two symbols

    Posted by chan_chenyanj on April 9, 2022 at 12:00 am

    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
    chan_chenyanj replied 8 months, 1 week ago 3 Members · 3 Replies
  • 3 Replies
  • Laura

    Administrator
    April 9, 2022 at 12:00 am
    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

    Member
    April 9, 2022 at 12:00 am

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

  • rocuinneagain

    Member
    April 11, 2022 at 12:00 am

    It is a projection on take

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

     

     

Log in to reply.