これにより、少なくとも 1 つのクラスフィールドが削除されているすべてのユーザーが選択され、すべてのクラスフィールドの数と削除されたすべてのクラスフィールドの数が表示されます。
SELECT
userid,
count(*) as numberofClassifieds,
sum(classStatus=6) as numberofDeletedClassfields
FROM
your_table
GROUP BY userid
HAVING numberofDeletedClassfields>0
ORDER BY numberofDeletedClassfields DESC
編集:これは結合を使用する代替手段です。他のクエリほどエレガントには見えませんが、確かに高速です:
SELECT dc.userid, c.numberofClassfields, dc.numberofDeletedClassfields
FROM
(select userid, count(*) as numberofDeletedClassfields
from your_table
where classStatus = 6
group by userid
having count(*)>0) dc
INNER JOIN
(select userid, count(*) as numberofClassfields
from your_table
group by userid) c
on dc.userid=c.userid
ORDER BY dc.numberofDeletedClassfields desc
EDIT2:とにかく、削除されたクラスフィールドの最大数を探している場合は、これを使用できます:
select max(numberofDeletedClassfields)
from (
select count(*) as numberofDeletedClassfields
from your_table
where classStatus = 6
group by userid) s