2014-04-25 3 views
0

Я пытаюсь создать таблицу поворота для этих 200 слов. Ниже мой код, и SQL продолжает давать мне сообщение об ошибке Error report: SQL Error: ORA-00918: column ambiguously defined 00918. 00000 - "column ambiguously defined". Ошибка указывает на SELECT *.Создать сводную таблицу: Ошибка ORA-00918

Однако, когда я сокращаю список слов от 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 
...   ...  ...  ...  ... 

ответ

0

Ваш список слова для поворота включает в себя дубликаты - так как вы инструктаж базы данных, чтобы превратить каждое слово в операторе IN() в имя столбца, вы получаете сообщение об ошибке, потому что вы сделаешь g, чтобы создать таблицу с несколькими столбцами с тем же именем.

Вместо этого, используйте следующий код (убедитесь, что у меня все слова правильно):

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

+0

Это все еще не работает. Я могу создать свод с первым словом, но не для всего списка. –

+0

Попробуйте просмотреть список слов и удалить их в меньших фрагментах, чтобы вы могли точно определить, когда/где определенное слово вызывает запрос. Прокомментируйте половину слов и посмотрите, будет ли он работать: если он работает, вы знаете, что эти слова в порядке, а если нет, вы знаете, что одна или несколько из них являются проблемой. – AHiggins

+0

Проблема заключалась в том, что повторялись слова. Сводная таблица их не принимает. Я удалил эти слова, чтобы получить сказочную работу. Это будет технически работать, но не уверен, повлияет ли это на результаты расчета. Все повторяющиеся слова имеют одинаковую информацию об увеличении значения ... –

0

Try, указав псевдонимы для каждого значения внутри вашего IN, а также для COUNT (слово) :

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 
.............. 
Смежные вопросы