2015-11-24 34 views
2

在SQL中,一个可以做如何在KDB /同时升序和降序排序Q

SELECT from tbl ORDER BY col1, col2 DESC 

在KDB,一个可以做

`col1 xasc select from tbl 

`col2 xdesc select from tbl 

但如何通过col1上升然后通过col2降序在KDB/Q中进行排序?

回答

4

2种。

创建示例数据:

q)show tbl:([]a:10?10;b:10?10;c:10?10) 
a b c 
----- 
8 4 8 
1 9 1 
7 2 9 
2 7 5 
4 0 4 
5 1 6 
4 9 6 
2 2 1 
7 1 8 
8 8 5 

做排序:

q)`a xasc `b xdesc tbl 
a b c 
----- 
1 9 1 
2 7 5 
2 2 1 
4 9 6 
4 0 4 
5 1 6 
7 2 9 
7 1 8 
8 8 5 
8 4 8 
+0

我认为这是更清晰: 我认为这是更清晰,但似乎工作。 'tbl2:([] a :(直到10)模3; b:直到10;行:直到10) 'xasc'b xdesc tbl2 – gbronner

+1

当然 - 这会在a中产生更大的集合大小,更明显。不要忘了'。 – user2242865

+1

我不认为你是对的。使用@gbronner的tbl2:'q)(\'a xasc tbl2)〜(\'a xasc \'b xdesc tbl2) 0b' – user2242865

-2

`col1`col2 xasc select from tbl应该做的伎俩

+0

的排序由两列上升。没有一个上升和一个下降。 – gbronner

相关问题