Выберите distinct для всех столбцов из таблицы с ключами

#kdb #k

#kdb #k

Вопрос:

Кажется, мы не можем получить различные значения из таблицы с ключами так же, как для неключеных:

 t:([a:1 2]b:3 4)
?[t;();0b;()]   // keyed table
?[0!t;();1b;()] // unkeyed table
?[t;();1b;()]   // err 'type
  

Почему у нас здесь эта ошибка?

Ответ №1:

Я подозреваю, что по той же причине вы не можете запустить distinct в словаре — это неоднозначно. Собираетесь ли вы применять distinct к ключам или значениям? Я думаю, что kdb не выбирает сторону, поэтому заставляет вас делать это самостоятельно.

 q)t:([]a:1 1 1 2 2;b:10 12 10 14 14)
q)select distinct from t
a b
----
1 10
1 12
2 14
q)select distinct from 1!t
'type

q)distinct `a`b`c!(1;"ab";enlist 1b)
'type