MySQL - условный COUNT / SUM часть 2 - PullRequest
0 голосов
/ 05 марта 2012

В дополнение к этому вопросу: MySQL - условный счет с GROUP BY

Начиная с MySQL:

SELECT puid,
COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v END) AS droid,
COUNT(DISTINCT sig_v) AS sig,
SUM(`Ext`) AS hits
FROM temp
GROUP BY puid

Возможно ли ввести условие, которое даст результат, только если SUM(``Ext``) AS hits больше 0?

Исходя из запроса выше, мой набор данных возвращает случаи, когда значение SUM равно 0 - это потому, что я не проверяю содержимое NoExt до его суммирования.

Я думаю, что я должен добавить AND в оператор Count, чтобы проверить, что NoExt> 0, я не могу увидеть, где это подходит.

Я пробовал несколько перестановок COUNT(DISTINCT CASE WHEN droid_v > 0 THEN droid_v END)AND Ext>0 AS droid,, но на данный момент у меня очень мало синтаксической глубины ...

У меня есть ощущение, что мне, возможно, придется сделать это на стороне Python моего инструмента, но было бы хорошо узнать, можно ли этого достичь на стороне MySQL.

1 Ответ

2 голосов
/ 05 марта 2012

Просто добавьте:

HAVING SUM(`Ext`) > 0

В конце запроса после GROUP BY.

HAVING похож на WHERE, но работает с группами, указанными в GROUP BY, что позволяет вамвключить только те группы, которые вы хотите.

...