菜鸟一枚,求各位大侠帮忙,表数据如下:
id kc xh score
1 语文 0023 70
2 语文 0024 76
3 语文 0025 68
4 数学 0023 15
5 数学 0024 68
6 数学 0025 95
7 数学 0026 73
8 英语 0023 77
9 英语 0024 69
10 英语 0025 12
11 英语 0026 54
12 语文 0026 34
求一条sql,列出不同课程分数最高的2条数据.
另外想大侠们分享下学习方法,
语法懂,但复杂的sql就是写不好.

解决方案 »

  1.   

    select *
    from tb A
    where 2>(select count(*) from tb B where A.kc=B.kc and A.score<B.score)多写就行了
      

  2.   

    参考下贴中的多种方法http://blog.csdn.net/acmain_chm/article/details/4126306
    [征集]分组取最大N条记录方法征集,及散分....
      

  3.   

    先读三遍《数据库系统概论(第四版)》 王珊 萨师煊   高等教育出版社 (掌握基础知识和概念) 然后再粗略浏览一遍MYSQL的官方手册。(方便以后查找,避免类似于考试的时候,给你本政治书也不知道答案在第几章,第几页)MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html