Comment appliquer la fonction max pour chaque ligne dans KDB ?
Question
Je veux m'assurer que toutes les valeurs de la colonne x
ne sont pas inférieurs à 0,5, donc je fais :
update x:max (x 0.5) from myTable
Mais cela donne une erreur (dans Studio pour KDB+):
An error occurred during execution of the query.
The server sent the response:
type
Studio Hint: Possibly this error refers to wrong type, e.g `a+1
Qu'est-ce qui ne va pas?
La solution
Vous pouvez essayer d'utiliser |
q)update x|0.5 from myTable
Autres conseils
Cela devrait fonctionner.Cela a fonctionné pour moi.Voici la requête que j'ai utilisée pour tester :
update x:max(x;0.5) from myTable
-- Vérifiez le point-virgule dans la fonction max
Essaie le kdb vecteur conditionnel c'est similaire au cas-quand en SQL :
q)t:([] a:6?.9)
q)t
a
---------
0.4237094
0.5712045
0.8705158
0.2075746
0.8549775
0.3951729
q)update ?[a<0.5;0.5;a] from t
a
---------
0.5
0.5712045
0.8705158
0.5
0.8549775
0.5
q)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow