Условный счет в SQL
Ниже мой код
SELECT b.fulldate,
b.userid,
Count(a.isclanmatch)
FROM (SELECT fulldate,
realmatchid,
isclanmatch
FROM gro_int.int_match
WHERE ( fulldate BETWEEN '2013-06-30' AND Now() - 2 )
AND isclanmatch = 1
GROUP BY realmatchid)a
INNER JOIN gro_int.int_match_user b
ON b.realmatchid = a.realmatchid
WHERE ( b.fulldate BETWEEN '2013-06-30' AND Now() - 2 )
GROUP BY userid
fulldate userid count(a.isclanmatch)
2013-07-09 1417 4
2013-07-15 1581 2
2013-06-30 1603 1
То, что я хочу сделать, это только отобразить счетчик a.isclanmatch >=2. Является ли это возможным?
3 ответа
Добавлять
HAVING COUNT(a.isclanmatch)>=2
до конца вашего запроса
Я думаю, что вы хотите сделать:
HAVING COUNT(a.isclanmatch)>=2
Предполагая, что ваш текущий запрос в порядке, это должно работать
WITH mycte as(
SELECT b.fulldate, b.userid, COUNT(a.isclanmatch) colname
FROM(
SELECT fulldate, realmatchid, isclanmatch
FROM gro_int.int_match
WHERE (fulldate BETWEEN '2013-06-30' AND NOW()-2) AND isclanmatch = 1
GROUP BY realmatchid)a
INNER JOIN gro_int.int_match_user b
ON b.realmatchid = a.realmatchid
WHERE (b.fulldate BETWEEN '2013-06-30' AND NOW()-2)
GROUP BY userid
)
select * from mycte where colname >= 2