SnowConvert AI - Redshift - SELECT¶
SELECT¶
描述¶
从表、视图和用户定义的函数中返回行。(Redshift SQL 语言参考“SELECT 语句” (https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_synopsis.html))
语法¶
有关更多信息,请参阅以下每个链接:
CONNECT BY 子句¶
描述¶
CONNECT BY 子句指定了层次结构中的行之间的关系。通过将表与其自身联接并处理分层数据,您可以使用 CONNECT BY 按分层顺序选择行。(Redshift SQL 语言参考“CONNECT BY 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_CONNECT_BY_clause.html))
Note
The CONNECT BY clause is supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
COUNT(*) |
|---|
12 |
输出代码:¶
Snowflake¶
Results¶
COUNT(*) |
|---|
12 |
FROM 子句¶
描述¶
查询中的 FROM 子句列出了从中选择数据的表引用(表、视图和子查询)。如果列出了多个表引用,则必须在 FROM 子句或 WHERE 子句中使用相应语法联接这些表。如果未指定联接条件,则系统会将查询作为交叉联接进行处理。(Redshift SQL 语言参考“FROM 子句”) (https://docs.aws.amazon.com/redshift/latest/dg/r_FROM_clause30.html))
警告
Snowflake 部分支持 FROM 子句。目前不支持 Object 取消透视 (https://docs.aws.amazon.com/redshift/latest/dg/query-super.html#unpivoting)。
语法¶
示例源模式¶
联接类型¶
Snowflake 支持所有类型的连接。有关更多信息,请参阅 JOIN 文档。
输入代码:¶
Redshift¶
Results¶
内部联接¶
| EMPLOYEE_NAME | DEPARTMENT_NAME |
|---|---|
| John | HR |
| Jorge | Sales |
| Kwaku | Sales |
| Liu | Sales |
| Mateo | Engineering |
| Nikki | Marketing |
| Paulo | Marketing |
| Richard | Marketing |
| Sofía | Engineering |
左联接¶
EMPLOYEE_NAME |
DEPARTMENT_NAME |
|---|---|
Carlos |
null |
John |
HR |
Jorge |
Sales |
Kwaku |
Sales |
Liu |
Sales |
Mateo |
Engineering |
Nikki |
Marketing |
Paulo |
Marketing |
Richard |
Marketing |
Saanvi |
null |
Shirley |
null |
Sofía |
Engineering |
Zhang |
null |
右联接¶
DEPARTMENT_NAME |
MANAGER_NAME |
|---|---|
HR |
Carlos |
Sales |
John |
Engineering |
Jorge |
Marketing |
Kwaku |
null |
Liu |
null |
Mateo |
null |
Nikki |
null |
Paulo |
null |
Richard |
null |
Saanvi |
null |
Shirley |
null |
Sofía |
null |
Zhang |
全连接¶
EMPLOYEE_NAME |
DEPARTMENT_NAME |
|---|---|
Carlos |
null |
John |
HR |
Jorge |
Sales |
Kwaku |
Sales |
Liu |
Sales |
Mateo |
Engineering |
Nikki |
Marketing |
Paulo |
Marketing |
Richard |
Marketing |
Saanvi |
null |
Shirley |
null |
Sofía |
Engineering |
Zhang |
null |
输出代码:¶
Snowflake¶
Results¶
内部联接¶
EMPLOYEE_NAME |
DEPARTMENT_NAME |
|---|---|
John |
HR |
Jorge |
Sales |
Kwaku |
Sales |
Liu |
Sales |
Mateo |
Engineering |
Nikki |
Marketing |
Paulo |
Marketing |
Richard |
Marketing |
Sofía |
Engineering |
左联接¶
EMPLOYEE_NAME |
DEPARTMENT_NAME |
|---|---|
Carlos |
null |
John |
HR |
Jorge |
Sales |
Kwaku |
Sales |
Liu |
Sales |
Mateo |
Engineering |
Nikki |
Marketing |
Paulo |
Marketing |
Richard |
Marketing |
Saanvi |
null |
Shirley |
null |
Sofía |
Engineering |
Zhang |
null |
右联接¶
DEPARTMENT_NAME |
MANAGER_NAME |
|---|---|
HR |
Carlos |
Sales |
John |
Engineering |
Jorge |
Marketing |
Kwaku |
null |
Liu |
null |
Mateo |
null |
Nikki |
null |
Paulo |
null |
Richard |
null |
Saanvi |
null |
Shirley |
null |
Sofía |
null |
Zhang |
全连接¶
EMPLOYEE_NAME |
DEPARTMENT_NAME |
|---|---|
Carlos |
null |
John |
HR |
Jorge |
Sales |
Kwaku |
Sales |
Liu |
Sales |
Mateo |
Engineering |
Nikki |
Marketing |
Paulo |
Marketing |
Richard |
Marketing |
Saanvi |
null |
Shirley |
null |
Sofía |
Engineering |
Zhang |
null |
Pivot 子句¶
备注
在 Snowflake 中,PIVOT 查询的 IN 子句中不能使用列别名。
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
“HR” |
“Sales” |
“Engineering” |
“Marketing” |
|---|---|---|---|---|
100 |
1 |
0 |
0 |
0 |
101 |
0 |
3 |
0 |
0 |
102 |
0 |
0 |
2 |
0 |
103 |
0 |
0 |
0 |
3 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
“HR” |
“Sales” |
“Engineering” |
“Marketing” |
|---|---|---|---|---|
100 |
1 |
0 |
0 |
0 |
101 |
0 |
3 |
0 |
0 |
102 |
0 |
0 |
2 |
0 |
103 |
0 |
0 |
0 |
3 |
Unpivot 子句¶
备注
在 Snowflake 中,UNPIVOT 查询的 IN 子句中不能使用列别名。
输入代码:¶
Redshift¶
Results¶
COLOR |
CNT |
|---|---|
RED |
15 |
RED |
35 |
RED |
10 |
GREEN |
20 |
GREEN |
23 |
BLUE |
7 |
BLUE |
40 |
输出代码:¶
Snowflake¶
Results¶
COLOR |
CNT |
|---|---|
RED |
15 |
GREEN |
20 |
BLUE |
7 |
RED |
35 |
BLUE |
40 |
RED |
10 |
GREEN |
23 |
相关的 EWIs¶
SSC-EWI-RS0005: SnowConvert AI translation for column aliases in the PIVOT/UNPIVOT IN clause is pending.
GROUP BY 子句¶
描述¶
GROUP BY 子句标识了查询的分组列。当查询使用标准函数(如 SUM、AVG 和 COUNT)计算聚合时,必须声明分组列。(Redshift SQL 语言参考“GROUP BY 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_GROUP_BY_clause.html))
Note
The GROUP BY clause is fully supported in Snowflake.
语法¶
示例源模式¶
分组集¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
Group by Cube¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
Group by Rollup¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
100 |
1 |
101 |
3 |
102 |
2 |
103 |
3 |
104 |
3 |
null |
1 |
null |
13 |
相关的 EWIs¶
没有已知问题。
HAVING 子句¶
描述¶
HAVING 子句可将条件应用于查询返回的中间分组结果集。(Redshift SQL 语言参考“HAVING 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_HAVING_clause.html))
Note
The HAVING clause is fully supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
101 |
3 |
103 |
3 |
104 |
3 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
TOTAL_EMPLOYEES |
|---|---|
101 |
3 |
103 |
3 |
104 |
3 |
相关的 EWIs¶
没有已知问题。
ORDER BY 子句¶
描述¶
ORDER BY 子句对查询的结果集进行排序。(Redshift SQL 语言参考“Order By 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html))
Note
The ORDER BY clause is fully supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
ID |
NAME |
MANAGER_ID |
SALARY |
|---|---|---|---|
107 |
Liu |
103 |
108000.00 |
103 |
Kwaku |
101 |
105000.00 |
102 |
Jorge |
101 |
95000.00 |
106 |
Mateo |
103 |
95000.00 |
108 |
Zhang |
104 |
95000.00 |
输出代码:¶
Snowflake¶
Results¶
ID |
NAME |
MANAGER_ID |
SALARY |
|---|---|---|---|
107 |
Liu |
103 |
108000.00 |
103 |
Kwaku |
101 |
105000.00 |
102 |
Jorge |
101 |
95000.00 |
106 |
Mateo |
103 |
95000.00 |
108 |
Zhang |
104 |
95000.00 |
相关的 EWIs¶
没有已知问题。
QUALIFY 子句¶
描述¶
QUALIFY 子句根据用户指定的搜索条件筛选先前计算的窗口函数的结果。您可以使用该子句对窗口函数的结果应用筛选条件,而无需使用子查询。(Redshift SQL 语言参考“QUALIFY 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_QUALIFY_clause.html))
Note
The QUALIFY clause is supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
SS_SOLD_DATE |
SS_SOLD_TIME |
SS_ITEM |
SS_SALES_PRICE |
|---|---|---|---|
2022-01-01 |
17:00:00 |
Product 4 |
1000 |
2022-01-01 |
18:00:00 |
Product 5 |
30 |
2022-01-02 |
16:00:00 |
Product 7 |
5 |
输出代码:¶
Snowflake¶
Results¶
SS_SOLD_DATE |
SS_SOLD_TIME |
SS_ITEM |
SS_SALES_PRICE |
|---|---|---|---|
2022-01-02 |
16:00:00 |
Product 7 |
5 |
2022-01-01 |
17:00:00 |
Product 4 |
1000 |
2022-01-01 |
18:00:00 |
Product 5 |
30 |
相关的 EWIs¶
没有已知问题。
SELECT 列表¶
描述¶
SELECT 列表会命名您希望查询返回的列、函数和表达式。该列表表示查询的输出。(Redshift SQL 语言参考“SELECT 列表” (https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_list.html))
Note
Snowflake 完全支持 查询起始选项。请记住,在 Snowflake 中,DISTINCT 和 ALL 选项必须放在查询的开头。
备注
在 Redshift 中,如果应用程序允许使用外键或无效的主键,则可能导致查询返回不正确的结果。例如,如果“主键”列中不包含所有唯一值,则 SELECT DISTINCT 查询可能会返回重复行。(Redshift SQL 语言参考“SELECT 列表” (https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_list.html))
语法¶
示例源模式¶
Top 子句¶
输入代码:¶
Redshift¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
100 |
Carlos |
null |
101 |
John |
100 |
102 |
Jorge |
101 |
103 |
Kwaku |
101 |
110 |
Liu |
101 |
输出代码:¶
Snowflake¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
100 |
Carlos |
null |
101 |
John |
100 |
102 |
Jorge |
101 |
103 |
Kwaku |
101 |
110 |
Liu |
101 |
ALL ¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
|---|
null |
100 |
101 |
101 |
101 |
102 |
103 |
103 |
103 |
104 |
104 |
102 |
104 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
|---|
null |
100 |
101 |
101 |
101 |
102 |
103 |
103 |
103 |
104 |
104 |
102 |
104 |
DISTINCT¶
输入代码:¶
Redshift¶
Results¶
MANAGER_ID |
|---|
null |
100 |
101 |
102 |
103 |
104 |
输出代码:¶
Snowflake¶
Results¶
MANAGER_ID |
|---|
null |
100 |
101 |
102 |
103 |
104 |
相关的 EWIs¶
没有已知问题。
UNION、INTERSECT 和 EXCEPT¶
描述¶
UNION、INTERSECT 和 EXCEPT 集合运算符 用于比较和合并两个单独的查询表达式的结果。(Redshift SQL 语言参考“集合运算符” (https://docs.aws.amazon.com/redshift/latest/dg/r_UNION.html))
Note
Set operators are fully supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
103 |
Kwaku |
101 |
110 |
Liu |
101 |
102 |
Jorge |
101 |
106 |
Mateo |
102 |
201 |
Sofía |
102 |
输出代码:¶
Snowflake¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
102 |
Jorge |
101 |
103 |
Kwaku |
101 |
110 |
Liu |
101 |
106 |
Mateo |
102 |
201 |
Sofía |
102 |
相关的 EWIs¶
没有已知问题。
WHERE 子句¶
描述¶
WHERE子句中包含联接表或将谓词应用于表列的条件。(Redshift SQL 语言参考“WHERE 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_WHERE_clause.html))
Note
The WHERE clause is fully supported in Snowflake.
语法¶
示例源模式¶
输入代码:¶
Redshift¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
101 |
John |
100 |
102 |
Jorge |
101 |
输出代码:¶
Snowflake¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
101 |
John |
100 |
102 |
Jorge |
101 |
相关的 EWIs¶
没有已知问题。
WITH 子句¶
描述¶
WITH 子句是查询中的可选子句,需置于 SELECT 列表之前。WITH 子句定义了一个或多个 common_table_expressions。每个公用表表达式 (CTE) 都定义了一个临时表,这类似于视图定义。您可以在 FROM 子句中引用这些临时表。(Redshift SQL 语言参考“WITH 子句” (https://docs.aws.amazon.com/redshift/latest/dg/r_WITH_clause.html))
Note
The WITH clause is fully supported in Snowflake.
语法¶
示例源模式¶
递归形式¶
输入代码:¶
Redshift¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
101 |
John |
100 |
110 |
Liu |
101 |
102 |
Jorge |
101 |
103 |
Kwaku |
101 |
201 |
Sofía |
102 |
106 |
Mateo |
102 |
105 |
Richard |
103 |
104 |
Paulo |
103 |
110 |
Nikki |
103 |
205 |
Zhang |
104 |
120 |
Saanvi |
104 |
200 |
Shirley |
104 |
输出代码:¶
Snowflake¶
Results¶
ID |
NAME |
MANAGER_ID |
|---|---|---|
101 |
John |
100 |
102 |
Jorge |
101 |
103 |
Kwaku |
101 |
110 |
Liu |
101 |
106 |
Mateo |
102 |
201 |
Sofía |
102 |
110 |
Nikki |
103 |
104 |
Paulo |
103 |
105 |
Richard |
103 |
120 |
Saanvi |
104 |
200 |
Shirley |
104 |
205 |
Zhang |
104 |
非递归形式¶
输入代码:¶
Redshift¶
Results¶
EMPLOYEE |
MANAGER |
|---|---|
Carlos |
null |
John |
Carlos |
Jorge |
John |
Kwaku |
John |
Liu |
John |
Mateo |
Jorge |
Sofía |
Jorge |
Nikki |
Kwaku |
Paulo |
Kwaku |
Richard |
Kwaku |
Saanvi |
Paulo |
Shirley |
Paulo |
Zhang |
Paulo |
输出代码:¶
Snowflake¶
Results¶
EMPLOYEE |
MANAGER |
|---|---|
John |
Carlos |
Jorge |
John |
Kwaku |
John |
Liu |
John |
Mateo |
Jorge |
Sofía |
Jorge |
Nikki |
Kwaku |
Paulo |
Kwaku |
Richard |
Kwaku |
Saanvi |
Paulo |
Shirley |
Paulo |
Zhang |
Paulo |
Carlos |
null |
相关的 EWIs¶
没有已知问题。