We’ve talked about how important it is to validate data before doing any reports. S**t in – S**t out.
With JSON columns it’s quite easy to make a mistake, we’ve already seen how filtering for empty JSON values could be misleading. Compare these 2 queries:
SELECT COUNT(*) FROM web_analytics.pageviews WHERE custom_parameters IS NOT NULL
SELECT COUNT(*) FROM web_analytics.pageviews WHERE custom_parameters::text != '{}'
Quite different numbers, right? Imagine we’d calculate conversion rate or something with these numbers, could be very dangerous.
...