2015-11-24 59 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

相關問題