- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL SQL文 仮想カラムに番号を振りたい)
MySQL SQL文 仮想カラムに番号を振りたい
このQ&Aのポイント
- MySQLのSQL文を使用して、株ID=2001の直近10回の売買価格を取得する方法について質問しています。
- 取得したデータに仮想カラムを追加し、若い順に0から9の番号を振る方法を探しています。
- 現在のSQL文では、0から9の番号を振ることができず、改良方法を模索しています。助けを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
0からはじまる連番を得たいだけならこんな感じ SELECT *,(select @a:=@a+1 from (select @a:=-1) as dummy) as zero from tbl select @a:=-1のところは初期値マイナス1の値を与えておきます
その他の回答 (1)
noname#212058
回答No.1
複数レコードにまたがって分析する必要があるデータを取得 するのに、関数(ファンクション)を使う『方式』自体が良く ありません。 SELECT *, myFunction(f1,id) FROM history … みたいな感じで使いたいということですよね? 無理やり作ることは不可能ではないですが、これでは取得される 1レコード毎に myFunction が呼び出されるので、myFunction 内で集約処理をするとパフォーマンスが死にます。方針転換した ほうが良いです。
質問者
お礼
ご指導有難うございます。 パフォーマンスについては検証してみます。 大変勉強になりました。 有難うございました。
お礼
ありがとうございます。 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) で出来ました。 本当に助かりました。感謝です!!