我有一个格式的表格
Date | Name | Result
---------------------------
2012-05-02 | bob | W
2012-04-01 | kevin | D
2012-03-21 | mark | L
2012-03-19 | bob | W
并想生成一个查询,然后我可以导出到 excel。目前该表包含大约 3000 行,一个名称可能出现一次到 60 次之间的任何地方,目前数据中有 893 个不同的唯一名称。
我希望列包含按日期列升序排序的结果的格式,即 R1 是该名称的最旧结果,R2 是第二旧的结果。最后一列 (Rn) 将是最近的结果。以及查看条纹等的简单方法。
Name | R1 | R2 | R3 ....
-------------------
Bob | W | W | D | W ....
Mark | D | L |
Trevor |
我可以通过选择名称来为单个名称执行此操作,日期结果按日期升序排序,但这作为列返回,当然我可以在 excel 中手动编辑列,但是有没有办法在 sql 中为每个名称执行此操作?
就像是:
select f_name,
select f_result from table a where f_name=b.f_name order by f_date asc limit 1 as r1,
select f_result from table a where f_name=b.f_name order by f_date asc limit 2,1 as r2,
select f_result from table a where f_name=b.f_name order by f_date asc limit 3,1 as r3
from table b, table b
where a.id=b.id
但显然是编程,因为这将是相当耗时的类型,更新和维护。
亲切的问候
编辑:我应该注意我有权创建表或视图等,如果创建可以通过 cron 作业与数据保持同步的东西会更容易。然后我的导出是 select * from...