• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL SQL文 仮想カラムに番号を振りたい)

MySQL SQL文 仮想カラムに番号を振りたい

このQ&Aのポイント
  • MySQLのSQL文を使用して、株ID=2001の直近10回の売買価格を取得する方法について質問しています。
  • 取得したデータに仮想カラムを追加し、若い順に0から9の番号を振る方法を探しています。
  • 現在のSQL文では、0から9の番号を振ることができず、改良方法を模索しています。助けを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

0からはじまる連番を得たいだけならこんな感じ SELECT *,(select @a:=@a+1 from (select @a:=-1) as dummy) as zero from tbl select @a:=-1のところは初期値マイナス1の値を与えておきます

tajix14
質問者

お礼

ありがとうございます。 SELECT *,(select @a:=@a+1 from (select @a:=-1) as dummy) as zero from ((SELECT * FROM (SELECT * FROM history WHERE id = 2001 ORDER BY f1 DESC limit 0,10) as AA ORDER BY f1 ASC) as AB) で出来ました。 本当に助かりました。感謝です!!

その他の回答 (1)

noname#212058
noname#212058
回答No.1

複数レコードにまたがって分析する必要があるデータを取得 するのに、関数(ファンクション)を使う『方式』自体が良く ありません。 SELECT *, myFunction(f1,id) FROM history … みたいな感じで使いたいということですよね? 無理やり作ることは不可能ではないですが、これでは取得される 1レコード毎に myFunction が呼び出されるので、myFunction 内で集約処理をするとパフォーマンスが死にます。方針転換した ほうが良いです。

tajix14
質問者

お礼

ご指導有難うございます。 パフォーマンスについては検証してみます。 大変勉強になりました。 有難うございました。

関連するQ&A