Получите требуемый результат с помощью ONLY_FULL_GROUP_BY

#mysql

Вопрос:

Я придумал следующий запрос (с отключенным режимом mysql ONLY_FULL_GROUP_BY)

 SELECT
      sum(case when B.value1 = 3 then 1 else 0 end) AS totalCount,
      case when B.value1 = 3 AND C.value2 = 28 then A.value3 else 0 end AS infoField
    FROM node as A
      JOIN node_2 as B ON B.entity_id = A.nid AND A.type = 'feed_likes'
      JOIN node_3 as C ON C.nid = A.nid
 

Что мне нужно, так это количество строк, когда B. значение 1 = 3, и значение A. значение 3, ЕСЛИ есть строка, в которой B. значение 1 = 3 И C. значение 2 = 28 (в противном случае установите его равным 0).

То, что он возвращает, — это именно то, что я хочу:

В случае B. значение 1 = 3 И C. значение 2 = 28

Итого Инфополе
10 «xyz»

В случае B. значение 1 = 3 И C. значение 2 != 28

Итого Инфополе
10 0

Однако, когда включен режим ONLY_FULL_GROUP_BY, мне нужно добавить a Group By со всеми полями, которые я использую в запросе, что уничтожает результат, который я изначально хотел. Есть идеи, как получить необходимый результат с GROUP BY помощью ?

Показаны следующие ошибки:

 Syntax error or access violation: 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
 

и

 Syntax error or access violation: 1055 'db.A...' isn't in GROUP BY
 

Комментарии:

1. повторите выражение case в предложении group by

2. вот так просто GROUP BY case when B.value1 = 3 AND C.value2 = 28 then A.value3 else 0 end ?

3. да, именно это я и имел в виду