summaryrefslogtreecommitdiff
path: root/rushs/data-clash/step-3/napoleon_analysis.sql
diff options
context:
space:
mode:
authorMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
committerMartial Simon <msimon_fr@hotmail.com>2025-09-15 01:08:27 +0200
commitc9b6b9a5ca082fe7c1b6f58d7713f785a9eb6a5c (patch)
tree3e4f42f93c7ae89a364e4d51fff6e5cec4e55fa9 /rushs/data-clash/step-3/napoleon_analysis.sql
add: graphs et rushs
Diffstat (limited to 'rushs/data-clash/step-3/napoleon_analysis.sql')
-rw-r--r--rushs/data-clash/step-3/napoleon_analysis.sql46
1 files changed, 46 insertions, 0 deletions
diff --git a/rushs/data-clash/step-3/napoleon_analysis.sql b/rushs/data-clash/step-3/napoleon_analysis.sql
new file mode 100644
index 0000000..cdbb4bd
--- /dev/null
+++ b/rushs/data-clash/step-3/napoleon_analysis.sql
@@ -0,0 +1,46 @@
+SELECT
+ id,
+ right(location, 7) AS location,
+ end_time - start_time AS duration,
+ left(details, 10) AS details,
+ CASE
+ WHEN
+ NOT regexp_like(details, '^([[:ascii:]])*$')
+ THEN 'invalid_characters'
+ WHEN
+ start_time > end_time OR location NOT LIKE '%MMT'
+ THEN 'improbable_values'
+ WHEN start_time IS NULL OR end_time IS NULL THEN 'missing_timestamp'
+ WHEN
+ location IS NULL OR latitude IS NULL OR longitude IS NULL
+ THEN 'missing_location'
+ WHEN
+ EXISTS (
+ SELECT *
+ FROM napoleon_data.public_reports AS t
+ WHERE
+ r.id > t.id
+ AND r.location = t.location
+ AND r.start_time = t.start_time
+ AND r.end_time = t.end_time
+ AND r.details = t.details
+ )
+ THEN 'duplicate_report'
+ END AS issue
+FROM napoleon_data.public_reports AS r
+WHERE
+ NOT regexp_like(details, '^([[:ascii:]])*$')
+ OR start_time IS NULL OR end_time IS NULL
+ OR start_time > end_time
+ OR location NOT LIKE '%MMT'
+ OR location IS NULL OR latitude IS NULL OR longitude IS NULL
+ OR EXISTS (
+ SELECT *
+ FROM napoleon_data.public_reports AS t
+ WHERE
+ r.id > t.id
+ AND r.location = t.location
+ AND r.start_time = t.start_time
+ AND r.end_time = t.end_time
+ AND r.details = t.details
+ )