1

私の質問はおそらく簡単に答えられますが(申し訳ありません)、解決策が見つかりません。

次のようなテーブルがあります。

id / date  
1 / 2013-5-5 13:44:12  
1 / 2013-5-5 15:34:19  
1 / 2013-6-5 05:14:07  
2 / 2012-3-4 06:33:33  
2 / 2013-5-5 12:23:10  
3 / 2012-5-7 11:43:17   

私が欲しいのはこれです:

id / date / position  
1 / 2013-5-5 13:44:12 / 1    
1 / 2013-5-5 15:34:19 / 2  
1 / 2013-6-5 05:14:07 / 3   
2 / 2012-3-4 06:33:33 / 1   
2 / 2013-5-5 12:23:10 / 2   
3 / 2012-5-7 11:43:17 / 1  

したがって、ID ごとの最も早い日付が 1 位、2 番目に早い日付が 2 位というようになります。MySQLで位置列を作成するにはどうすればよいですか?

どうもありがとうございました!

4

3 に答える 3

1

セッション変数を使用することもできますが、私は感傷的です。私はゆっくりとした昔ながらの方法が好きです...

 SELECT x.*
      , COUNT(*) rank 
   FROM my_table x 
   JOIN my_table y 
     ON y.id = x.id 
    AND y.date <= x.date 
  GROUP 
     BY id,date;
于 2013-08-07T12:07:24.210 に答える