Я пытаюсь создать звездообразную схему и в настоящее время работаю над таблицами измерений.Я хочу скопировать несколько столбцов из одной таблицы в другую, но в то же время хочу сделать значения результатов уникальными для одного из столбцов.
Вот таблицы, которые я использую: DWH_PRICE_PAID_RECORDS
CREATE TABLE "DWH_PRICE_PAID_RECORDS" ("TRANSACTION_ID" VARCHAR(50) NOT NULL, "PRICE" INTEGER, "DATE_OF_TRANSFER" DATE NOT NULL, "PROPERTY_TYPE" CHAR(1), "OLD_NEW" CHAR(1), "DURATION" CHAR(1), "TOWN_CITY" VARCHAR(50), "DISTRICT" VARCHAR(50), "COUNTY" VARCHAR(50), "PPDCATEGORY_TYPE" CHAR(1), "RECORD_TYPE" CHAR(1));
ALTER TABLE "DWH_PRICE_PAID_RECORDS" ADD CONSTRAINT "PK3" PRIMARY KEY ("TRANSACTION_ID");
и DIM_REGION
CREATE TABLE "DIM_REGION" ("REGION_ID" INTEGER generated always as identity (start with 1 increment by 1), "TRANSACTION_ID" VARCHAR(50), "TOWN" VARCHAR(50), "COUNTY" VARCHAR(50), "DISTRICT" VARCHAR(50), "LATITUDE" VARCHAR(50), "LONGITUDE" VARCHAR(50), "COUNTRY_STRING" VARCHAR(50));
ALTER TABLE "DIM_REGION" ADD CONSTRAINT "PK8" PRIMARY KEY ("REGION_ID");
Моя первая попытка состояла в том, чтобы использовать «выбрать отличительные», но при этом удаляются только все дубликаты ВСЕХ столбцов вместе.Я хочу иметь измерение региона, а "город" должен быть идентификатором, чтобы сопоставить DIM_REGION с таблицей фактов на витрине данных, которую я создам позже (она называется DM_PRICE_PAID_RECORDS).
Таблица DWH_PRICE_PAID_RECORDS имеет около 10 тыс. Записейно только 938 уникальных городов.Я хочу иметь эти 938 городов в dim_region в качестве идентификатора вместе с другими столбцами, такими как округ, округ и т. Д.
Это то, что работает, но тогда, конечно, все остальное - NULL, но город:
INSERT INTO DIM_REGION (TOWN) SELECT (town_city) from DWH_PRICE_PAID_RECORDS GROUP BY town_city;
Так что я подумал, что мне нужно только добавить дополнительные столбцы
INSERT INTO DIM_REGION (TOWN, County, District) SELECT town_city, county, district from DWH_PRICE_PAID_RECORDS GROUP BY town_city;
, но когда я это делаю, я получаю это сообщение об ошибке (сообщение об ошибке немецкое, и мне пришлось перевести, извините):
ERROR 42Y36 Column reference: "DWH_PRICE_PAID_RECORDS.COUNTY" is invalid or part of a invalid statement. When using SELECT and GROUP BY the selected columns and statements must be valid group- or aggregation expressions.
Можете ли вы мне помочь или у вас есть другая идея, как еще я могу получить результат, к которому стремлюсь?
Большое спасибо!