繁体   English   中英

生成数据透视表:错误ORA-00918

[英]Generate pivot table: Error ORA-00918

我正在尝试为这200个单词创建一个pivort表。 下面是我的代码,SQL一直给我一条错误消息Error report: SQL Error: ORA-00918: column ambiguously defined 00918. 00000 - "column ambiguously defined" 错误指向SELECT *

但是,当我将单词列表从200削减到前3个单词时,它将生成该表,但给我这个错误Error report: SQL Command: table FINAL_PIVOTTEST Failed: Warning: execution completed with warning 感谢您的帮助!

    CREATE TABLE FINAL_PIVOTTEST AS;
    SELECT *
    FROM 
    (SELECT QUESID, WORD FROM FINAL_WORDLIST)
    PIVOT 
    (COUNT (WORD)
    FOR WORD IN (
    'article',
    'color',
    'icard',
    'icard',
    '400',
    'link',
    'stroke',
    'resume',
    'theories',
    'floppy',
    'semester',
    'justice',
    'rent',
    'receipt',
    'idnr',
    'bronze',
    'govdocument',
    'room',
    'means',
    'roomreservation',
    'checkout',
    'soil',
    'tour',
    'money',
    'grainger',
    'putting',
    'union',
    'microfiche',
    'disappeared',
    'explored',
    'returning',
    'returning',
    'replacement',
    'password',
    'homepage',
    'paper',
    'games',
    '1970s',
    'british',
    'board',
    'side',
    'leave',
    'electronically',
    'conversation',
    'message',
    'park',
    'next',
    '2013',
    'isnt',
    'today',
    'option',
    'citing',
    'job',
    'chemistry',
    'tomorrow',
    'citation ',
    'never',
    'availability',
    'availability',
    'mainstx',
    'mainstx',
    'personal',
    'alumni',
    'alumni',
    'test',
    'period',
    'undergraduate',
'medical',
'textbooks',
'missing',
'reserve',
'later',
'later',
'development',
'user',
'movie',
'visiting',
'refworks',
'refworks',
'talk',
'shelf',
'sciences',
'chapter',
'too',
'those',
'ebook',
'building',
'call',
'desk',
'wondered',
'scientist',
'during',
'ugl',
'ugl',
'ugl',
'problems',
'book',
'address',
'system',
'listed',
'location',
'free',
'site',
'bis',
'various',
'software',
'chat',
'phone',
'process',
'documenT',
'pdf',
'author',
'general',
'american',
'copies',
'newspaper',
'located',
'requested',
'particular',
'called',
'called',
'report',
'faculty',
'sshel',
'graduate',
'public',
'public',
'check',
'member'));

我用来生成此数据透视表的表如下所示:

READSCALE   QUESID     SENTID    WORDID    WORD
  2         a00001       1         1       book
  3         a00002       1         2      library
 ...         ...        ...       ...       ...

通过为IN中的每个值以及COUNT(word)指定别名来进行尝试:

 CREATE TABLE FINAL_PIVOTTEST AS
 SELECT *
 FROM 
 (SELECT QUESID, WORD FROM FINAL_WORDLIST)
 PIVOT 
 (COUNT (WORD) wrd
 FOR WORD IN ('fire' as fire,
 'dnr' as dnr
 ..............

您要旋转的单词列表包括重复的单词-由于您正在指示数据库将IN()语句中的每个单词都转换为列名,因此,由于试图创建包含多个同名列的表,您将收到错误消息。

相反,请使用以下代码(确保我正确输入所有单词):

SELECT *
FROM 
(SELECT QUESID, WORD FROM FINAL_WORDLIST)
PIVOT 
(COUNT (WORD)
FOR WORD IN    
  (
    'fire',
    'dnr',
    'relay',
    'techloan',
    'calculator',
    'purse',
    'owner',
    'botanical',
    'chatted',
    'book',
    'safe',
    'serial',
    'decisions',
    'interviewing',
    'headphones',
    'keys',
    'sd',
    'prospective',
    'hr',
    'caller',
    'undergraduate',
    'directional',
    'habits',
    'discharge',
    'donating',
    'receipt',
    'bronze',
    'color',
    'addresses',
    'individuals',
    'tablet',
    'stations',
    'istc',
    'soil',
    'acquisition',
    'hiring',
    'retiree',
    'archival',
    'potential',
    'renewals',
    'release',
    'notes',
    'chapter',
    'camera',
    'apply',
    'discussion',
    'return',
    'provide',
    'sdc',
    'brief',
    'tour',
    'future',
    'mediacenter',
    'interview',
    'librarians',
    'courtesy',
    'overdue',
    'session',
    'message',
    'reports',
    'lib',
    'emailed',
    'numbers',
    'alumni',
    'printer',
    'building',
    'show',
    'recent',
    'returned',
    'availability',
    'talk',
    'scan',
    'job',
    'renew',
    'order',
    'scientist',
    'oakstr',
    'digital',
    'room',
    'reading',
    'media',
    'circ',
    'video',
    'call',
    'list',
    'open',
    'dvd',
    'lost',
    'card',
    'google',
    'graduate',
    'scanner',
    'phone',
    'policies',
    'before',
    'reserves',
    'called',
    'computer',
    'working',
    'location',
    'another',
    'full',
    'callnumber',
    'staff',
    'email',
    'collection',
    'campus',
    'showed',
    'checked',
    'contact',
    'research',
    'ugl',
    'ill',
    'item',
    'print',
    'journal',
    'request',
    'books',
    'library'
  )
);

单击此处获取SQL Fiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM