SQL создает таблицу из выбора, отличного от условий

У меня есть таблица, назовем ее 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.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
2 128
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете создать таблицу на основе вашего утверждения 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).

Другие вопросы по теме