• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:viewにidentity列の追加)

viewにidentity列の追加

このQ&Aのポイント
  • SQLを使用して、テーブルにidentity列を追加する方法を教えてください。
  • 作成したいviewは、ID、ADDRESS、出身人数の列を持ったテーブルです。
  • 使用しているDBはH2です。

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

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

H2を良く知らないのですが、一般的には、group byとRownum()とを一緒に使うと うまくいかないのではなかったかと。 SELECT ROWNUM ( ) AS ID,ADDRESS,COUNT(*) AS 出身人数 FROM SAMPLE GROUP BY ADDRESS ではなく、 SELECT ROWNUM ( ) AS ID,ADDRESS,出身人数 from ( select ADDRESS,COUNT(*) AS 出身人数 FROM SAMPLE GROUP BY ADDRESS ) とするとうまくいくのでは? ANO.1の方が示しておられるURLの The first row has the row number 1, and is calculated before ordering and grouping the result set・・・ To get the row number after ordering and grouping, use a subquery. というのが、 「group byの前に連番振りますよ、但し・・・。 サブクエリを使うと、group byの後に連番を振りますよ。」(適当な意訳ですけど) つまり上記の意味です。

m15to01
質問者

お礼

返事が遅くなってしまい申し訳ありません。 ご回答の通りにやってみたらできました。参考になりました。 本当にありがとうございました。

その他の回答 (1)

noname#189141
noname#189141
回答No.1

rownumとかrow_numberでなんとかなりませんかね。 http://www.h2database.com/html/functions.html#rownum

m15to01
質問者

お礼

rownumを使って以下のSQL文を書いてみたのですが CREATE VIEW TESTView AS SELECT ROWNUM ( ) AS ID,ADDRESS,COUNT(*) AS 出身人数 FROM SAMPLE GROUP BY ADDRESS 以下のような結果になってしまいました。 ID  ADDRESS  出身人数 7   東京    2 7   埼玉    1 7   神奈川   2  7   千葉    2 申し訳ありませんが、指摘事項がありましたらお願いします。

関連するQ&A