Почему «сумма» работает, но » / » не работает в запросах KDB?

#kdb

Вопрос:

Почему sum здесь работает, но основная форма / не работает? (Взято из https://code.kx.com/q/ref/sum/)

 t: ([]name:`Jack`Jill`Janet;hair:`brown`black`fair;eye:`blue`green`hazel;age:12 9 14)

q)select sum age from t
age
---
35
q)select  /age from j
'/
  [0]  select  /age from j
               ^
 

Ответ №1:

Это потому / , что синтаксис is k. Чтобы вызвать его (и аналогичные конструкции k) в q, вам нужно будет заключить его в круглые скобки.

 select enlist ( /)age from j
 

В общем случае, если для связанного выражения k существует встроенное ключевое слово q, вам следует использовать это ключевое слово ( sum в данном случае), поскольку оно, вероятно, приведет к дальнейшей оптимизации.
В случае sum q автоматически включит результат в инструкцию select, которая ( /) не будет работать. Следовательно, почему я сделал это вручную выше. В противном случае ожидайте ошибки ранга.