Skip to content

Instantly share code, notes, and snippets.

@JoeShi
Created April 9, 2019 05:49
Show Gist options
  • Save JoeShi/d4ee620e5effc63edd6e0dd4ec5f2c9e to your computer and use it in GitHub Desktop.
Save JoeShi/d4ee620e5effc63edd6e0dd4ec5f2c9e to your computer and use it in GitHub Desktop.
dynamodb-design-issue
```SQL
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ("id" VARCHAR(4), "cp" VARCHAR(64), "ssp" VARCHAR(64), "pub" VARCHAR(64),
"total" INTEGER, "success" INTEGER, "conv" INTEGER,
"error_200" INTEGER, "error_300_ip" INTEGER, "error_300_la" INTEGER, "error_300_rf" INTEGER, "error_300_ua" INTEGER, "error_300_dm" INTEGER, "error_300_wd" INTEGER,
"error_400" INTEGER, "error_600" INTEGER);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM
"id",
"cp",
"ssp",
"pub",
COUNT(*) total,
Sum(CASE
WHEN "status" = '100' THEN 1
ELSE 0
end) success,
Sum(CASE
WHEN "status" = '500' THEN 1
ELSE 0
end) conv,
Sum(CASE
WHEN "status" = '200' THEN 1
ELSE 0
end) error_200,
Sum(CASE
WHEN "status" = '300_ip' THEN 1
ELSE 0
end) error_300_ip,
Sum(CASE
WHEN "status" = '300_la' THEN 1
ELSE 0
end) error_300_la,
Sum(CASE
WHEN "status" = '300_rf' THEN 1
ELSE 0
end) error_300_rf,
Sum(CASE
WHEN "status" = '300_ua' THEN 1
ELSE 0
end) error_300_ua,
Sum(CASE
WHEN "status" = '300_dm' THEN 1
ELSE 0
end) error_300_dm,
Sum(CASE
WHEN "status" = '300_wd' THEN 1
ELSE 0
end) error_300_wd,
Sum(CASE
WHEN "status" LIKE '400_%' THEN 1
ELSE 0
end) error_400,
Sum(CASE
WHEN "status" = '600' THEN 1
ELSE 0
end) error_600
FROM "SOURCE_SQL_STREAM_001"
GROUP BY "id", "cp", "ssp", "pub", FLOOR(("SOURCE_SQL_STREAM_001".ROWTIME - TIMESTAMP '1970-01-01 00:00:00') SECOND / 30 TO SECOND);
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment