KX Fundamentals Capstone

Hey, I am having an issue with the Fundamentals Capstone course (on Developer) with trying to obtain the unique option IDs from the trade table in part 1. I have loaded the trade table from the partitioned database using the table importer. 

I am using the following code but I am getting a par error - unable to operate on a partitioned table.

q code: uniqueOpts:distinct trade`option_id

Does anyone have any thoughts on how to answer this?

Thanks

Hello,

Thanks for sharing this with the community. Great content!

I believe the error generated is a result of your method for retrieving the unique OptionIDs. Given your table is partitioned, this method of taking columns from tables will not work . Hence the ‘unable to operate on a partitioned table’ error.

I suggest querying the table, meaning avail of Functional qSQL Statements as an alternate approach to obtain the unique OptionIDs from the trade table.

Functional qSQL information can be studied here: https://code.kx.com/q/basics/funsql/ 

Specifically focus your attention on the functional form ‘exec’  https://code.kx.com/q/ref/exec/ 

In summary, rather than 

 

uniqueOpts:distinct trade`option_id

 

Create uniqueOpts by following the syntax below (provided in the previous link) where square brackets mark optional elements. This is what we refer to as ‘querying’ the table. 

 

exec [distinct] ps [by pb] from texp [where pw]

 

The above code is a ‘hint’ and requires modification.

Hope this helps. 

Kind regards,

Leah 

exec won’t work on a partitioned table directly. Need to have a select statement first.

 

exec option_id from select distinct option_id from trade

 

I would also recommend starting with qSQL  before moving on to functional qSQL.

QSQL query templates | Basics | kdb+ and q documentation - Kdb+ and q documentation (kx.com)

Thank you for the help, Matt and Leah!