我正在尋找在SQL Server中類似這樣的:PostgreSQL等同於TOP n WITH TIES:LIMIT「with ties」?
SELECT TOP n WITH TIES FROM tablename
我知道PostgreSQL約LIMIT
,但確實上述存在的相同呢?我只是好奇,因爲它會每次爲我節省額外的查詢。
如果我有一個表Numbers
與屬性nums
:{10, 9, 8, 8, 2}
。我想要做的事,如:
SELECT nums FROM Numbers ORDER BY nums DESC LIMIT *with ties* 3
它應該返回{10, 9, 8, 8}
,因爲它需要的前3名加上額外8
,因爲它關係另一個。
爲什麼這樣複雜? rank()函數將完成所需的功能? – 2012-03-09 08:01:33
@a_horse_with_no_name:你絕對是對的(起初我是這樣)我的第二個考慮是不需要的。 – 2012-03-09 08:06:53
@Erwin:這很好(http://data.stackexchange.com/stackoverflow/query/63525/top-n-with-ties),我不知道stackoverflow有一個內置的模塊來運行查詢:-)雖然10,9,8,8,2,10,10,10,9的輸出是不正確的,如果你需要得到前3(10,9,8)並列出所有10,9,8;應該是:10,10,9,8,8。對於某些給定的問題,'WITH TIES'可能不正確:http://stackoverflow.com/questions/2611822/distinct-with-count-and-sql-server-2005/2612456#2612456 – 2012-03-09 08:49:23