例如,
姓名 | 科目 | 成绩 |
王 | 数学 | 100 |
王 | 语文 | 99 |
王 | 英语 | 98 |
王 | 生物 | 97 |
王 | 政治 | 96 |
王 | 物理 | 95 |
王 | 化学 | 94 |
王 | 体育 | 93 |
王 | 基本能力 | 92 |
王 | 地理 | 91 |
孙 | 数学 | 66 |
孙 | 语文 | 68 |
孙 | 英语 | 70 |
孙 | 生物 | 72 |
孙 | 政治 | 74 |
孙 | 物理 | 76 |
孙 | 化学 | 78 |
孙 | 体育 | 80 |
孙 | 基本能力 | 82 |
孙 | 地理 | 84 |
我想查出每个名字属性下的前n个成绩。
想显示多少个属性,就在最后加几个属性,只需要修改table_name和属性X,在这里,属性X就是:名字属性
SELECT a.*
FROM table_name a
WHERE ( SELECT COUNT(*) FROM table_name WHERE 属性X = a.属性X ) < n
order by 属性X,属性Y,属性Z