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

Sql 生成数据透视表:错误ORA-00918,sql,oracle,pivot-table,Sql,Oracle,Pivot Table,我试图为这200个单词创建一个pivort表。下面是我的代码,SQL不断给我一条错误消息错误报告: SQL错误:ORA-00918:列定义不明确 91800000-“定义不明确的列”。错误指向选择* 但是,当我将单词列表从200剪切到前3个时,它将生成表格,但会给我此错误错误报告: SQL命令:表最终数据透视测试 失败:警告:执行已完成,但出现警告。谢谢你的帮助 CREATE TABLE FINAL_PIVOTTEST AS; SELECT * FROM (SE

我试图为这200个单词创建一个pivort表。下面是我的代码,SQL不断给我一条错误消息
错误报告:
SQL错误:ORA-00918:列定义不明确
91800000-“定义不明确的列”
。错误指向
选择*

但是,当我将单词列表从200剪切到前3个时,它将生成表格,但会给我此错误
错误报告:
SQL命令:表最终数据透视测试
失败:警告:执行已完成,但出现警告
。谢谢你的帮助

    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中的每个值以及计数(word)指定别名:


要透视的单词列表包含重复的单词-由于您指示数据库将in()语句中的每个单词转换为列名,因此您收到了一个错误,因为您试图创建一个包含多个同名列的表

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


单击此处查看

它仍然不工作。我可以用第一个单词创建一个轴心,但不适用于整个列表。请尝试浏览您的单词列表,并将它们以较小的块删除,这样您就可以准确地找出某个单词导致查询失败的时间/地点。注释掉一半的单词,看看它是否会运行:如果它运行,你知道这些单词是可以的,如果没有,你知道其中一个或多个是问题所在。问题是有重复的单词。透视表不接受它们。我删除了这些词,以使这个故事生效。这在技术上可行,但不确定是否会影响计算结果。所有重复的单词都具有相同的信息增益值……如果您确实需要字段显示多次(即在报表上),您可以在top select语句中多次选择该列。然而,单词本身不应该改变——每一个单词都将计算该单词的所有出现次数。
 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
 ..............
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'
  )
);