Есть ли способ использовать предложение HAVING другим способом без использования group by.
Я использую рельсы, и ниже приведен пример сценария проблемы, с которой я сталкиваюсь. В рельсах вы можете использовать функцию Model.find (: все,: выбор, условия,: группа) для получения данных. В этом запросе я могу указать предложение в параметре: group. Но что, если у меня нет предложения group by, но я хочу иметь предложение hasing в наборе результатов.
Пример: давайте возьмем запрос
выберите сумму (x) как a, b, c из y, где группа "some_conditions" группируется по b, c;
Этот запрос имеет агрегацию sum () по одному из полей. Нет, если агрегировать нечего, мой результат должен быть пустым. Но mysql возвращает пустую строку. Так что эту проблему можно решить с помощью
выберите сумму (x) как a, b из y, где группа "some_conditions" b имеет NOT NULL;
но что происходит, если у меня нет предложения group by? запрос как показано ниже
выберите сумму (x) как a, b из y, где "some_conditions";
как же указать, что сумма (x) не должна быть NULL?
Поможет любое решение, которое вернет пустой набор в этом случае вместо строки NULL, а также это решение должно быть выполнимо в рельсах.
Мы можем использовать подзапросы, чтобы это условие работало с суммой, подобной этой
выберите * из ((выберите сумму (x) как b ОТ y, где "some_condition") как subq), где subq.b не равно нулю;
но есть ли лучший способ сделать это через sql / rails ??