0

結果セットからの最新の 10 年間のデータのみが常に必要です。年には常に複数のレコードがあるため、最初の 10 レコードだけを取得することはできません。どうすれば: SELECT 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
4

3 に答える 3

0
select * from t 
where
(year>(select max(year) from t)-10)
order by year desc, quarter desc
于 2012-12-05T19:11:02.203 に答える
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

次に、それらの年のすべてのレコードを選択します

于 2012-12-05T18:27:38.570 に答える
0

これは次の方法で実行できます。

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

このクエリは次のように説明できます。

  1. 内部クエリ - 過去 10 年間を選択table
  2. 外部クエリ -table内部クエリ結果の年からすべての列を選択します
于 2012-12-05T18:25:29.867 に答える