-2

私は現在現在のクエリを持っています:

SELECT count(*) as number_of_items,
    if(first_name <> "", 1, 0)
    + if(last_name <> "", 1, 0)
    + if(current_avatar is not null, 1, 0)
    + if(username <> "" 
        AND email <> "" 
        AND gender <> "" 
        AND date_of_birth <> "" ,1,0) AS completeness 
FROM `user` HAVING (completeness = '4')

しかし、これは意図したとおりには機能しません。完全性が2であるすべてをカウントしているようです。カウントと句を削除すると、すべての異なる完全性カウント(1から4)が表示されます。個々の完全性カウントをカウントする方法はありますか?

4

1 に答える 1

2

group by completenessこれを機能させるには、が必要です。

SELECT count(*) as number_of_items,
    if(first_name <> "", 1, 0)
    + if(last_name <> "", 1, 0)
    + if(current_avatar is not null, 1, 0)
    + if(username <> "" 
        AND email <> "" 
        AND gender <> "" 
        AND date_of_birth <> "" ,1,0) AS completeness 
FROM `user`
GROUP BY completeness
HAVING (completeness = '4')
于 2012-10-15T07:52:16.980 に答える