#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, которая ( /)
не будет работать. Следовательно, почему я сделал это вручную выше. В противном случае ожидайте ошибки ранга.