2013-04-07 79 views
0

我有一個表query有3個字段(int)ID,(string)query(int)freq。我需要找出具有第二高頻率的查詢中具有匹配關鍵字的所有查詢。以下是我試過,所有匹配關鍵字的結果都有第二高的頻率

select * from query 
where query like concat('%',(Select query from query 
where freq = (Select min(freq) from query 
where freq in (Select freq from query order by freq desc limit 2))),'%'); 

我覺得行了「從選擇查詢」隔離查詢列後不選擇任何東西。最後2條select語句爲查詢提供次高的頻率。 請讓我知道我做錯了什麼。

+0

請問什麼數據庫系統?沒有這一點,它將很難給你一個工作的答案。 SQL Server,MySQL,Postgre,Oracle等... – ErikE 2013-04-07 08:08:01

回答

0
SELECT ID, QUERY, FREQ 
FROM 
(
SELECT ID, QUERY, FREQ, ROW_NUMEBER() OVER(ORDER BY FREQ DESC) RN 
FROM QUERY 
) A 
WHERE RN = 2 
+0

對不起我的不好...其SQL服務器 – 2013-04-07 16:00:09

+0

這將在SQL Server – Santhosh 2013-04-08 04:34:43

相關問題