Json's не очень хороши в отношениях db. Если вы разворачиваете json в столбцы и храните в db, это здорово, но хранить json, поскольку blob находится рядом с его использованием в качестве системы архивирования данных.
Может быть несколько причин не разворачивать json и хранить его в одном столбце, но решение было принято, поскольку значения в этом json-поле не будут использоваться для любого запроса (или значения имеют уже развернуты в столбцы).
Кроме того, большая часть обработки json, если вообще было задано поле, будет вне среды sql, поскольку sql просто не предназначен для обработки json. Тогда возникает реальный вопрос: где я храню этот json, я просто разрешаю ему быть плоскими файлами и, когда требуется, запрашивать их через какую-то другую систему (искра / улей / и т. Д.).
Я согласился бы с вашим художником БД, не используйте RDBMS для архивации. Есть более дешевые варианты. Кроме того, json blobs может стать огромным и начать со временем забивать дисковое пространство.
Вы правы. Это скалярный подзапрос . Такой подзапрос возвращает один столбец и не более одной строки. Значение рассматривается как скалярное значение в запросе.
В данном случае это запрос агрегации, в котором учитываются совпадающие строки. Итак, эта логика требует как минимум двух совпадений.