SQL 从 select distinct with conditions 创建 table

SQL create table from a select distinct with conditions

我有一个 table,我们称它为 table1,它有很多列,对于这个 table 我现在想创建一个新的 table,其中包含独特的table1 的一列的值分组或与另一列的唯一值如果在第三列中 teh 值等于“staff”

column1 | column2 | column3 | ....
  john  |   store |  staff  
  luis  |   front |  staff
  carlos|   store |  temp 
  luis  |   front |  staff

我想要的是 table 这样的:

 user | dept 
 john | store
 luis | front
 john | front

我的第一次尝试:

create table users
as 
   select distinct column1,column2
   from table1
   where column3 ='staff'

但这不是正确的语法,它说“关键字 select 附近的语法不正确。

所以我的第二次尝试是这样的: 创建 table 作为

   Select Distinct column1, from table1 group by column2 where column3 = 'staff'

但是这种尝试给了我同样的错误。我的 SQL 语法知识并不像你看到的那么好,所以我想首先知道是否可以做这样的事情,其次什么是正确的语法。这样我就可以创建一个我可以使用的索引 table,而不必在 power bi 中创建它。

您可以根据您的 SELECT 语句创建一个 table。

select distinct column1, column2
into table2
from table1
where column3 ='staff'

上面的语句将根据 SELECT 中的列及其数据类型创建一个名为 table2 的新 table .在这种情况下 table2 将有两列名称为 column1column2.

如果您希望从 select 查询中获取 table 模式,Emin 有办法做到这一点,这可能正是您想要的。如果您愿意,请查看他的回答,因为这是创建和插入的正确语句。

如果你想 select 到你创建的 table 中,创建 table 然后你可以使用 SELECT DISTINCT 语句作为你的 INSERT INTO询问。这更像是:

INSERT INTO NewTableName (Column1, Column2) 
SELECT DISTINCT Column1, Column2
FROM TableNameHere
WHERE Condition = "something"

如前所述,您必须先使用此方法创建 table,但您可以显式控制 table 中的列(注意类型的更改将需要 CAST 或在 SELECT).

中转换为新类型