Amazon redshift 红移删除时间戳为星期六的记录
大家好,我是红移队的新手,需要帮助吗 要求使用dw_created_日期从表中删除记录,其中工作日为星期六。Amazon redshift 红移删除时间戳为星期六的记录,amazon-redshift,Amazon Redshift,大家好,我是红移队的新手,需要帮助吗 要求使用dw_created_日期从表中删除记录,其中工作日为星期六。 请提供帮助我还没有使用Amazon Redshift,但在阅读之后,您应该使用以下方法找到您的记录: SELECT *, to_char(dw_created_date, 'D') dayofweek FROM table “dayofweek”中的数字6指的是星期六,因此这将删除记录: DELETE FROM table WHERE to_char(dw_created_date,
请提供帮助我还没有使用Amazon Redshift,但在阅读之后,您应该使用以下方法找到您的记录:
SELECT *, to_char(dw_created_date, 'D') dayofweek FROM table
“dayofweek”中的数字6指的是星期六,因此这将删除记录:
DELETE FROM table WHERE to_char(dw_created_date, 'D') = 6
祝你好运 我还没有使用Amazon Redshift,但是在阅读之后,您应该使用以下方法找到您的记录:
SELECT *, to_char(dw_created_date, 'D') dayofweek FROM table
“dayofweek”中的数字6指的是星期六,因此这将删除记录:
DELETE FROM table WHERE to_char(dw_created_date, 'D') = 6
祝你好运 亚马逊红移功能允许您从红移中提取日期部分以及有关日期和时间戳的信息,并获取日期部分 您可以找到有关的信息 为了从to_CHAR函数中提取所需的信息,需要使用适当的日期时间格式字符串。例如,“D”返回星期几,DY返回工作日名称的缩写,day提供完整拼写的工作日名称 您可以找到有关的信息 下面,我将提供一段代码,演示TO_CHAR函数的工作原理
create table tba (colint integer, colts timestamp) distkey (colint) sortkey (colts);
insert into tba (colint, colts) values (1, '2016-08-08 08:08:08');
insert into tba (colint, colts) values (1, '2016-08-09 09:09:09');
insert into tba (colint, colts) values (1, '2016-08-10 10:10:10');
insert into tba (colint, colts) values (1, '2016-08-11 10:11:11');
insert into tba (colint, colts) values (12, '2016-08-12 12:12:12');
insert into tba (colint, colts) values (13, '2016-08-13 13:13:13');
insert into tba (colint, colts) values (14, '2016-08-14 14:14:14');
insert into tba (colint, colts) values (15, '2016-08-15 15:15:15');
insert into tba (colint, colts) values (16, '2016-08-16 16:16:16');
insert into tba (colint, colts) values (17, '2016-08-17 17:17:17');
insert into tba (colint, colts) values (18, '2016-08-18 18:18:18');
insert into tba (colint, colts) values (20, '2016-08-20 20:20:20');
insert into tba (colint, colts) values (6, '2016-08-06 06:06:06');
select *
, to_char(colts,'D') day_of_week_number
, to_char(colts,'DAY') day_of_week_name
, to_char(colts,'DY') day_of_week_abbrev
from tba;
colint | colts | day_of_week_number | day_of_week_name | day_of_week_abbrev
--------+---------------------+--------------------+------------------+--------------------
15 | 2016-08-15 15:15:15 | 2 | MONDAY | MON
16 | 2016-08-16 16:16:16 | 3 | TUESDAY | TUE
18 | 2016-08-18 18:18:18 | 5 | THURSDAY | THU
1 | 2016-08-08 08:08:08 | 2 | MONDAY | MON
1 | 2016-08-09 09:09:09 | 3 | TUESDAY | TUE
1 | 2016-08-10 10:10:10 | 4 | WEDNESDAY | WED
1 | 2016-08-11 10:11:11 | 5 | THURSDAY | THU
12 | 2016-08-12 12:12:12 | 6 | FRIDAY | FRI
13 | 2016-08-13 13:13:13 | 7 | SATURDAY | SAT
14 | 2016-08-14 14:14:14 | 1 | SUNDAY | SUN
17 | 2016-08-17 17:17:17 | 4 | WEDNESDAY | WED
20 | 2016-08-20 20:20:20 | 7 | SATURDAY | SAT
6 | 2016-08-06 06:06:06 | 7 | SATURDAY | SAT
(13 rows)
最后,但并非最不重要的是,如果您是红移新手,有两件非常重要的事情需要注意。每次删除或更新大量数据时,都应始终执行以下两项操作:
vacuum full tab代码>李>
-AmazonRedshift依赖于表数据和分布的准确统计数据,以创建最高效的查询计划。如果删除、插入或更改数据的“重要”部分。您应该在表上运行命令,以确保数据库具有最新的统计信息。示例命令是ANALYZE VERBOSE TBA代码>李>
Amazon Redshift函数允许您从Redshift提取日期部分以及有关日期和时间戳的信息,并获取日期部分
您可以找到有关的信息
为了从to_CHAR函数中提取所需的信息,需要使用适当的日期时间格式字符串。例如,“D”返回星期几,DY返回工作日名称的缩写,day提供完整拼写的工作日名称
您可以找到有关的信息
下面,我将提供一段代码,演示TO_CHAR函数的工作原理
create table tba (colint integer, colts timestamp) distkey (colint) sortkey (colts);
insert into tba (colint, colts) values (1, '2016-08-08 08:08:08');
insert into tba (colint, colts) values (1, '2016-08-09 09:09:09');
insert into tba (colint, colts) values (1, '2016-08-10 10:10:10');
insert into tba (colint, colts) values (1, '2016-08-11 10:11:11');
insert into tba (colint, colts) values (12, '2016-08-12 12:12:12');
insert into tba (colint, colts) values (13, '2016-08-13 13:13:13');
insert into tba (colint, colts) values (14, '2016-08-14 14:14:14');
insert into tba (colint, colts) values (15, '2016-08-15 15:15:15');
insert into tba (colint, colts) values (16, '2016-08-16 16:16:16');
insert into tba (colint, colts) values (17, '2016-08-17 17:17:17');
insert into tba (colint, colts) values (18, '2016-08-18 18:18:18');
insert into tba (colint, colts) values (20, '2016-08-20 20:20:20');
insert into tba (colint, colts) values (6, '2016-08-06 06:06:06');
select *
, to_char(colts,'D') day_of_week_number
, to_char(colts,'DAY') day_of_week_name
, to_char(colts,'DY') day_of_week_abbrev
from tba;
colint | colts | day_of_week_number | day_of_week_name | day_of_week_abbrev
--------+---------------------+--------------------+------------------+--------------------
15 | 2016-08-15 15:15:15 | 2 | MONDAY | MON
16 | 2016-08-16 16:16:16 | 3 | TUESDAY | TUE
18 | 2016-08-18 18:18:18 | 5 | THURSDAY | THU
1 | 2016-08-08 08:08:08 | 2 | MONDAY | MON
1 | 2016-08-09 09:09:09 | 3 | TUESDAY | TUE
1 | 2016-08-10 10:10:10 | 4 | WEDNESDAY | WED
1 | 2016-08-11 10:11:11 | 5 | THURSDAY | THU
12 | 2016-08-12 12:12:12 | 6 | FRIDAY | FRI
13 | 2016-08-13 13:13:13 | 7 | SATURDAY | SAT
14 | 2016-08-14 14:14:14 | 1 | SUNDAY | SUN
17 | 2016-08-17 17:17:17 | 4 | WEDNESDAY | WED
20 | 2016-08-20 20:20:20 | 7 | SATURDAY | SAT
6 | 2016-08-06 06:06:06 | 7 | SATURDAY | SAT
(13 rows)
最后,但并非最不重要的是,如果您是红移新手,有两件非常重要的事情需要注意。每次删除或更新大量数据时,都应始终执行以下两项操作:
-当“删除”或“更新”数据时,Amazon Redshift会“逻辑”删除数据。因此,如果您更改了大量记录,则应运行以从表中物理删除数据。我的“经验法则”是,每当超过5%的数据被删除或更新时,就应该运行一个数据库。您应该运行一个命令,例如vacuum full tab代码>李>
-AmazonRedshift依赖于表数据和分布的准确统计数据,以创建最高效的查询计划。如果删除、插入或更改数据的“重要”部分。您应该在表上运行命令,以确保数据库具有最新的统计信息。示例命令是ANALYZE VERBOSE TBA代码>李>
很高兴听到!我可以推荐你多读一些文档,也会有一些更有趣的话题要读!很高兴听到!我可以推荐你多读一些文档,也会有一些更有趣的话题要读!