2017-07-06 6 views
-1

私は、年間の大学スポーツイベントへのチケット売り上げの合計をチャート化し、データベースに存在する他のイベントの中でランク付けする2つの変数を含むチャートを作成しようとしています。私はランクを各列の個々の年に対応させる方法を考え出すのに苦労しています。ここで サブクエリに結びついたランキングをMySQLに返すにはどうすればよいですか?

は私が始まるんだよ:

SELECT 
Year as year, 
School, 
`Ticket Sales`, 
(SELECT 
    COUNT(School)+1 
    FROM schools 
    WHERE Year = 2016 AND `Ticket Sales` > (
     SELECT `Ticket Sales` 
      FROM schools 
      WHERE School = "College" AND Year = 2016) 
     ) as Rank 
FROM schools 
WHERE School = "College" 
ORDER BY Year DESC 

そして、ここで私は戻ってきてるものだ( - 初年度のランクを - それは15与え気づくすべてのインスタンスに対して):

Year School Ticket Sales Rank 
2016 College 29054868 15 
2015 College 29586555 15 
2014 College 26928635 15 
2013 College 25888524 15 
2012 College 23432735 15 
2011 College 26467598 15 
2010 College 18395654 15 
2009 College 20711850 15 
2008 College 17107971 15 
2007 College 17287093 15 
2006 College 15351891 15 
2005 College 12767307 15 

編集:明確にするには、ランクの下の数字は年ごとに異なるはずです。

SELECT Year, 
     School, 
     sum(`Ticket Sales`) as `Ticket Sales`, 
     Count(*) as Rank 
FROM schools 
WHERE School = "College" 
GROUP BY Year, 
     School 
ORDER BY Year DESC 

はサンプル結果hereを参照してください:2015年の順位は、私は、これはあなたが達成しようとしているものであると信じてなど、

+0

すべてのレコードに対して15を返すサブクエリとしてランクを選択しています。あなたを助けるために、いくつかのサンプルデータと期待される結果を教えてください。 –

答えて

0

2016のとは異なるとした2014年代とは異なります。

関連する問題