2016-08-18 2 views

ответ

0

Я не использовал Amazon RedShift еще, но после прочтения documentation вы должны найти свои записи с помощью:

SELECT *, to_char(dw_created_date, 'D') dayofweek FROM table 

номер 6 в «DAYOFWEEK» будет относиться к субботе так что это будет удалить записей:

DELETE FROM table WHERE to_char(dw_created_date, 'D') = 6 

Удачи вам!

+0

Спасибо @ SaschaM78 Это сработало .. !! – Jay

+0

Замечательно! И я могу порекомендовать прочитать немного больше в документах, там будут еще несколько интересных тем, о которых нужно прочитать! – SaschaM78

0

Функция красного смещения Amazon TO_CHAR позволяет вам выделять детали даты и информацию о датах и ​​временных отметках от Redshift и получать детали даты.

Вы можете найти информацию о TO_CHAR function here.

Чтобы извлечь необходимую информацию из функции TO_CHAR, вам необходимо использовать соответствующую строку формата даты и времени. В качестве примеров «D» возвращает день недели, DY возвращает аббревиатуру имени дня недели, а DAY - полное полное имя дня недели.

Вы можете найти информацию о date time format strings for Redshift here.

Ниже я предоставляю быстрый фрагмент кода, который показывает, как работает функция 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) 

Последнее, но не менее важное: есть две очень важные вещи, на которые следует обратить внимание, если вы новичок в Redshift. Каждый раз, когда вы удалите или обновить значительное количество данных, есть 2 вещи, которые вы всегда должны делать:

  1. VACUUM - Amazon Redshift делает «логической» удаляет данные, когда «УДАЛИТЬ» или данные «UPDATE». Поэтому, если вы измените значительное количество записей, вы должны запустить vacuum, чтобы физически удалить данные из вашей таблицы. Мое «эмпирическое правило» заключается в том, что всякий раз, когда более 5% данных были удалены или обновлены, пришло время запустить VACUUM. Вы должны выполнить команду, например vacuum full tab;. You can find more info about VACUUM here.
  2. ANALYZE - Amazon Redshift зависит от точной статистики табличных данных и распределений, чтобы создать наиболее эффективный план запроса. Если вы удалите, вставьте или измените «значительную» часть данных. Вы должны запустить команду ANALYZE в таблице, чтобы убедиться, что база данных имеет последнюю статистику. Команда образца - ANALYZE VERBOSE TBA;. You can find more information about ANALYZE here.
Смежные вопросы