У меня есть таблица, назовем ее table1, которая имеет много столбцов, из этой таблицы я хочу теперь создать новую таблицу, которая содержит уникальные значения одного столбца table1, сгруппированные или с уникальными значениями другого столбца, если в третьем столбце значение равно "персонал"
column1 | column2 | column3 | ....
john | store | staff
luis | front | staff
carlos| store | temp
luis | front | staff
то, что я хочу, будет такой таблицей:
user | dept
john | store
luis | front
john | front
моя первая попытка:
create table users
as
select distinct column1,column2
from table1
where column3 ='staff'
однако это неправильный синтаксис, он говорит: «неправильный синтаксис рядом с ключевым словом select.
поэтому моя вторая попытка была такой: создать таблицу как
Select Distinct column1, from table1 group by column2 where column3 = 'staff'
Однако эта попытка дает мне ту же ошибку. Мои знания синтаксиса SQL не так хороши, как вы можете видеть, поэтому я хотел знать, во-первых, можно ли сделать что-то подобное, а во-вторых, каков будет правильный синтаксис. Это сделано для того, чтобы я мог создать индексную таблицу, которую я мог бы использовать вместо того, чтобы создавать ее в Power Bi.


Вы можете создать таблицу на основе вашего утверждения SELECT.
select distinct column1, column2
into table2
from table1
where column3 ='staff'
Этот оператор выше создаст новую таблицу с именем table2 на основе столбцов в SELECT и их типов данных. В этом случае таблица2 будет иметь два столбца с именами столбец1 и столбец2.
У Эмина есть способ сделать это, если вы хотите, чтобы схема таблицы была предоставлена из запроса на выборку, что, вероятно, вам нужно. Посмотрите его ответ, если это ваше желание, так как это правильное утверждение для создания и вставки.
Если вы хотите выбрать в созданную вами таблицу, создайте таблицу, а затем вы можете выполнить INSERT INTO с оператором SELECT DISTINCT в качестве запроса. Это больше похоже на:
INSERT INTO NewTableName (Column1, Column2)
SELECT DISTINCT Column1, Column2
FROM TableNameHere
WHERE Condition = "something"
Как уже упоминалось, вам придется сначала создать таблицу с помощью этого метода, но вы можете явно управлять столбцами в таблице (отмечая, что изменение типа потребует CAST или CONVERT для нового типа в вашем SELECT).