Introduzione a Redshift
Jason Myers
Principal Architect
| Tipo PostgreSQL | Tipi Redshift |
|---|---|
| DATETIME | TIMESTAMP, TIMESTAMPTZ |
| SERIAL | INTEGER, BIGINT |
| UUID | VARCHAR |
| JSON | SUPER, VARCHAR |
| ARRAY | SUPER, VARCHAR |
| BIT | BOOLEAN, SMALLINT, VARCHAR |
-- Visualizza i dettagli delle colonne
SELECT column_name,
data_type,
character_maximum_length AS character_max_len,
numeric_precision,
numeric_scale
-- Vista con colonne di schemi interni ed esterni
FROM SVV_ALL_COLUMNS
-- Solo nello schema spectrumdb
WHERE schema_name = 'spectrumdb'
-- Per la tabella ecommerce_sales
AND table_name = 'ecommerce_sales';
column_name | data_type | character_max_len | numeric_precision | numeric_scale
=============================|===================|===================|===================|==============
year_qtr | character varying | 100 | null | null
total_sales | integer | null | 32 | 0
ecom_sales | integer | null | 32 | 0
percent_ecom | real | null | null | null
percent_change_quarter_total | real | null | null | null
percent_change_quarter_ecom | real | null | null | null
percent_change_year_total | real | null | null | null
percent_change_year_ecom | real | null | null | null
| Da tipo | A tipi |
|---|---|
| CHAR | VARCHAR |
| DATE | CHAR, VARCHAR, TIMESTAMP, TIMESTAMPTZ |
| TIMESTAMP | CHAR, DATE, VARCHAR, TIMESTAMPTZ |
| BIGINT | BOOLEAN, CHAR, DECIMAL, DOUBLE PRECISION, INTEGER, REAL, SMALLINT, VARCHAR |
| DECIMAL | BIGINT, CHAR, DOUBLE PRECISION, INTEGER, REAL, SMALLINT, VARCHAR |
-- Cast di un decimal a integer con alias
SELECT CAST(2.00 AS INTEGER) AS our_int;
our_int
========
2
(1 row)
-- Converte la stringa in una data
SELECT CAST('14-01-2024 02:36:48' AS DATE) AS out_date;
valore campo data/ora fuori intervallo: "14-01-2024 02:36:48"
SUGGERIMENTO: forse serve un'impostazione "datestyle" diversa.
-- Effettua il parsing della stringa in una data
SELECT TO_DATE('14-01-2024 02:36:48', 'DD-MM-YYYY') AS our_date;
our_date
========
2024-01-14
(1 row)
-- Ottieni il nome del mese da una data
SELECT TO_CHAR(date '2024-01-14', 'MONTH') AS month_name;
month_name
========
JANUARY
(1 row)
Introduzione a Redshift