# abs() vs abs\[\] for fby "while" all() vs all\[\]

**URL:** <https://forum.kx.com/t/abs-vs-abs-for-fby-while-all-vs-all/13923>\
**Category:** Community Support\
**Tags:** imported, kdb-and-q\
**Created:** [May 18, 2024, 12:14pm UTC](https://forum.kx.com/t/abs-vs-abs-for-fby-while-all-vs-all/13923 "2024-05-18T12:14:57Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dang30.swati](https://sea2.discourse-cdn.com/flex002/user_avatar/forum.kx.com/dang30.swati/32/128_2.png) [@dang30.swati](https://forum.kx.com/u/dang30.swati)\
**Post date:** [May 18, 2024, 12:14pm UTC](https://forum.kx.com/t/abs-vs-abs-for-fby-while-all-vs-all/13923/1 "2024-05-18T12:14:57Z")

</div>

[https://learninghub.kx.com/forums/topic/abs-vs-abs-for-fby-while-all-vs-all](https://learninghub.kx.com/forums/topic/abs-vs-abs-for-fby-while-all-vs-all)

May I ask how does abs() differs from abs[] in a select statement using fby clause?

```
q)tab:([] sym:`g1`g3`g1`g1`g2`g3; price:-2.5 2 -0.5 -0.2 3 4)

q)tab

sym price

---------

g1 -2.5

g3 2

g1 -0.5

g1 -0.2

g2 3

g3 4

q)select from tab where abs(price)=({abs max x};price) fby sym

'type

[0] select from tab where abs(price)=({abs max x};price) fby sym

^

q)
```

and also similarly, in my qsql, if I use all with square brackets, it throws a rank error but all() works fine

```
a;col2=
```

How do I know when to use [] vs ()  
Thank you!
