搜索按type分类的click(点击率)最高的前两条记录。
查询结果为(该例子返回四条数据)
SELECT * FROM #tb1 a WHERE a.id IN
( SELECT TOP 2 ID FROM #tb1 WHERE type=a.type ORDER BY Click DESC)
请问这条SQL是怎么进行匹配的。执行机制是什么
我想知道怎么匹配的,可否说明白点
这个类似于一个内联查询。
就是对a中的每一个type,查询id在另外一个集合中的数据记录。
我想知道怎么匹配的,可否说明白点,就按照上面的例子
可能这么写会比较直观:
select * from tb1 a where a.id in (select top 2 id from tb1 group by type ) order by click desc
select top 2 id from tb1 group by type
这个都明显语法错误了
SELECT TOP 2 ID FROM #tb1 WHERE type=a.type ORDER BY Click DESC
查询出跟#tb1表有关系的并且按click字段倒序排序的前两条数据。
SELECT * FROM #tb1 a WHERE a.id IN这是查询出a.id在上面子查询返回的两条数据中的记录。
我想知道怎么匹配的,可否说明白点,就按照上面的例子
建议你用SQL执行计划看看详细过程,加深理解
能查看怎样匹配嘛?没有用过,在哪里查看。我想知道这个SQL是怎么匹配的。谢谢了
@彬彬@科比: sqlserver的菜单中有菜单项:实际执行计划