2013-04-07 80 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

相关问题