@strelkovandreyv

Как нормализовать таблицу в справочник?

Добрый день, подскажите пожалуйста, как правильнее нормализовать таблицу в таблицу типа справочник, когда имеется таблица следующего рода:

REPORT_ID ; IPAGE ; IFIELD ; IVALUE
1 ; Видео Windows ; Описание устройства ; IntelHD 2000
1 ; Видео Windows ; Тип видео процессора ; Intel Family
1 ; Видео Windows ; Объём видеопамяти ; 1024 КБ
2 ; Видео Windows ; Описание устройства ; IntelHD 2000
2 ; Видео Windows ; Тип видео процессора ; Intel Family
2 ; Видео Windows ; Объём видеопамяти ; 1024 КБ
2 ; Видео Windows ; Описание устройства ; NVIDIA GeForce 680
2 ; Видео Windows ; Тип видео процессора ; NVIDIA
2 ; Видео Windows ; Объём видеопамяти ; 4 ГБ
3 ; Видео Windows ; Описание устройства ; IntelHD 2000
3 ; Видео Windows ; Тип видео процессора ; Intel Family
3 ; Видео Windows ; Объём видеопамяти ; 2048 КБ

На выходе нужно получить таблицу следующего рода:

VIDEOCARD_TITLE ; VIDEOCARD_TYPE_PROCESSOR ; VIDECARD_MEMORY_SIZE
IntelHD 2000 ; Intel Family ; 1024 КБ
NVIDIA Geforce 680 ; NVIDIA ; 4 ГБ
IntelHD 2000 ; Intel Family ; 2048 КБ

Т.е. нормализованная таблица, у которой соблюдалась уникальность по всем полям (т.е. как в примере если оперативки разного объёма, то подразумевается что это уже другая видео карта), а также без повторения (т.е. встречается вроде 2 штуки видеокарты IntelHD 2000 с оперативной 1024кб - но в результате должна быть только одна)
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
Наверное, это не нормализация, а запрос: SELECT DISTINCT
Ответ написан
Комментировать
@Brezencat
Teamlead Data platform
Нормализация, это когда вы к таблице создаёте параллельно справочники. И ваша таблица должна выглядеть ка:
1; 01; 001; бла-бла-бла
1; 01; 002; Intel или 0001
1; 01; 003; 1024
2; 01; 001; бла-бла-бла
2; 01; 002; Intel или 0001
2; 01; 003; 4 Гб
3; 02; 001; бла-бла-бла
3; 02; 002; Radeon или 0002
3; 02; 003; 8 Гб

А то, что вы указываете в условии получения на выходе будет давать вьюха с джойнами на справочники и таблицу.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы