我总是只需要结果集中最近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
答案 0 :(得分:0)
你可以这样做:
SELECT * FROM table WHERE year IN
(SELECT year FROM table ORDER BY year DESC LIMIT 10);
此查询可以这样解释:
table
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