1

select ステートメントを使用してビューを作成しましたが、レコードごとに増分するシーケンス (USER_ID_SEQ) を示す新しいフィールド USER_ID を追加する必要があります。出来ますか?UNION を使用して 2 つの select ステートメントでビューを作成できることは知っていますが、シーケンスをビューに追加する方法がわかりません。以下は、最初の SELECT ステートメントに使用したクエリです。

create or replace view FINAL_WEB_LOG
as
SELECT SESSION_DT, 
     C_IP, 
     CS_USER_AGENT,
     tab_to_string(CAST(COLLECT(web_link) AS t_varchar2_tab)) WEBLINKS
FROM web_views_tab    
GROUP BY C_IP, CS_USER_AGENT, SESSION_DT
4

1 に答える 1

0

次のようにネストされたクエリを使用してみてくださいselect

  create or replace view FINAL_WEB_LOG
  as
  SELECT (SELECT USER_ID_SEQ.NEXTVAL from dual) as USER_ID,
     SESSION_DT, 
     C_IP, 
     CS_USER_AGENT,
     tab_to_string(CAST(COLLECT(web_link) AS t_varchar2_tab)) WEBLINKS
 FROM web_views_tab    
 GROUP BY C_IP, CS_USER_AGENT, SESSION_DT

これは機能するはずUSER_ID_SEQ.NEXTVALですが、ビューを更新するたびに増加し続けると思います。

IDフィールドを関連付けたいだけの場合は、次のように使用ROWNUMします。

  create or replace view FINAL_WEB_LOG
  as
  SELECT ROWNUM as USER_ID,
     SESSION_DT, 
     C_IP, 
     CS_USER_AGENT,
     tab_to_string(CAST(COLLECT(web_link) AS t_varchar2_tab)) WEBLINKS
 FROM web_views_tab    
 GROUP BY C_IP, CS_USER_AGENT, SESSION_DT
于 2012-12-13T05:10:38.257 に答える