回答
使用此:
select * from
(select colA , row_number() over(order by colA desc) as rn from Table) T
where T.rn=2
感謝馬丁/ dnoeth的評論:
它可與最多2個inetegers
問題使用此:
select * from
(select colA , DENSE_RANK() OVER (ORDER BY colA ) as rn from Table) T
where T.rn=2
附加信息:(一勞永逸(學習吧!,我總是用它)):
DECLARE @t TABLE(NAME NVARCHAR(MAX),val money)
insert INTO @t SELECT 'a',100
insert INTO @t SELECT 'a',100
insert INTO @t SELECT 'a',100
insert INTO @t SELECT 'a',100
insert INTO @t SELECT 'b',200
insert INTO @t SELECT 'b',200
insert INTO @t SELECT 'd',400
insert INTO @t SELECT 'e',500
insert INTO @t SELECT 'f',600
select Name,
val,
ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY name),
val/ SUM(val) OVER(PARTITION BY NAME) AS '1AgainstTotalHimself',
val/ SUM(val) OVER() AS '1AgainstOthers' ,
NTILE(2) OVER (PARTITION BY NAME ORDER BY name) AS 'ntile2' ,
NTILE(2) OVER (ORDER BY name) AS 'ntile' , -- (9%2=1 , so group #1 will get more number)
RANK() OVER (ORDER BY name ) AS Rank,
DENSE_RANK() OVER (ORDER BY name) AS DENSERANK
from @t
結果:解決
切換到DENSE_RANK而不是ROW_NUMBER以在多行共享相同工資時獲得正確結果。 – dnoeth
@dnoeth謝謝。事實上,你和馬丁是對的! –
的一種方式,這將是
with cte as (
select ColA,
Row_number() over(order by ColA DESC) As rn
FROM Table
)
SELECT ColA
FROM cte
WHERE rn = 2
更新 馬丁的正確意見後,這裏是一個更好的答案:
Select top 1 ColA
From YourTable
WHERE ColA < (
SELECT MAX(ColA)
FROM YourTable
)
ORDER BY ColA DESC
如果出現兩次,這可能會找到最大的數字。 –
或簡單地使用DENSE_RANK而不是ROW_NUMBER – dnoeth
@MartinSmith我開始思考,我的解決方案也會產生錯誤的結果。 –
- 1. SQL Server 2008 R2表查詢
- 2. 查找SQL Server 2008 R2中的記錄
- 3. SQL Server 2008 R2查詢
- 4. SQL Server 2008 R2 Varbinary最大大小
- 5. SQL Server 2008 R2插入數據檢查
- 6. SQLDependency SQL Server 2008 R2
- 7. SQL Server 2008 R2 OBJECT_ID
- 8. 在SQL Server 2008 R2中查詢Xml
- 9. SQL Server 2008 R2中的查詢優化
- 10. T-SQL查詢性能 - SQL Server 2008 R2
- 11. SQL Server 2008 R2中的SQL Server Reporting Services
- 12. SQL Server 2008 R2和SQL Server 2008 R2 RTM之間的差異
- 13. 從SQL Server 2008 R2 Express升級到SQL Server 2008 R2企業
- 14. SQL Server 2008 R2中的散列表
- 15. 在SQL Server 2008 R2中使用PIVOT表
- 16. 在SQL Server 2008 R2中更新表
- 17. 交叉表查詢與SQL Server 2008 R2中的值計數
- 18. SQL Server Express 2008 R2減小大小
- 19. SQL Server 2008 R2中的函數用法
- 20. 在SQL Server 2008 R2中計數行
- 21. 在表中查找第二最大
- 22. 查找字符串中的任何字母SQL Server 2008 R2
- 23. 查找隱藏在SQL Server 2008 R2中的對話框
- 24. 查詢通知(SqlDependency)SQL Server 2008 R2 DeadLock
- 25. Sql Server 2008 R2查詢優化
- 26. 使用FireDAC查詢SQL Server 2008 R2
- 27. SQL Server 2008 R2和檢查約束
- 28. Inefficent查詢計劃的SQL Server 2008 R2
- 29. SQL Server 2008 R2空間查詢
- 30. SQL Server 2008 R2:優化查詢性能
如果最大次數爲兩次在表中? –
@Amit一個簡單的問題並不表示作業/課程。但是,關於自我努力 - 我同意。 –
@RoyiNamir - 那你爲什麼回答這個問題?你不應該鼓勵其他人通過獎勵他們回答這些問題,你應該去激勵他人。 Downvote。 – Amit