SQL选择集/年1-10的结果

时间:2012-12-05 18:19:43

标签: mysql sql where set

我总是只需要结果集中最近10年的数据。这些年将永远有多个记录,所以我不能只拉前十条记录。我怎样才能:选择Set 1,SELECT Set 2 ...到10,只显示那些10年的数据而不拉动前几年?

Year    Quarter    Quarterly_yield
2012    1         8.41
2012    2        -0.71
2011    3         0.03
2011    4         3.43
2010    1         8.41
2010    2        -0.71
2009    3         0.03
2009    4         3.43
2008    1         8.41
2008    2        -0.71
2007    3         0.03
2007    4         3.43
2006    1         8.41
2006    2        -0.71
2005    3         0.03
2005    4         3.43
2004    1         8.41
2004    2        -0.71
2003    3         0.03
2003    4         3.43
2002    1         8.41
2002    2        -0.71
2001    3         0.03
2001    4         3.43
2000    1         8.41
2000    2        -0.71

3 个答案:

答案 0 :(得分:0)

你可以这样做:

SELECT * FROM table WHERE year IN 
                     (SELECT year FROM table ORDER BY year DESC LIMIT 10); 

此查询可以这样解释:

  1. 内部查询 - 从table
  2. 中选择过去10年
  3. 外部查询 - 从table中选择内部查询结果中年份的所有列

答案 1 :(得分:0)

怎么样

SELECT *
FROM table
WHERE year IN 
  (
   SELECT year
   FROM table
   ORDER BY Year DESC
   LIMIT 10
  ) 

这选择最近10年

SELECT year
FROM table
ORDER BY Year DESC
LIMIT 10

然后选择具有这些年份的每个记录

答案 2 :(得分:0)

select * from t 
where
(year>(select max(year) from t)-10)
order by year desc, quarter desc